我使用以下方法將文本添加到我生成的二維碼中:
private static void insertText(BufferedImage source, String text, int x, int y) {
Graphics2D graph = source.createGraphics();
graph.setFont(new Font("Arial", Font.PLAIN, 12));
graph.setColor(Color.BLACK);
graph.drawString(text, x, y);
}
它將給定的文本添加到 QR 碼的頂部。但是,我想繪制如下所示的 JSON 鍵值對作為文本,但是我看不到Graphics2D.
代替:
{ "id": 100, "name": "John", "surname": "Boython" }
我想繪制如下所示的文本:
id: 100
name: John
surname: Boython
那么,我該怎么做呢?另外,繪圖文本是否有 wrap 屬性Graphics2D?
uj5u.com熱心網友回復:
您可以將所有 JSON 元素一一添加到 Graphics2D 物件中。
graph.drawString("id: " json.get("id"), x, y);
graph.drawString("name: " json.get("name"), x, y 20);
graph.drawString("surname: " json.get("surname"), x, y 30);
假設 json 是一個 Map,其中有鍵值對。或者您可以使用您喜歡的任何其他庫或類。
編輯:您可以將JSON字串轉換成Map使用Gson非常容易。閱讀此答案https://stackoverflow.com/a/21720953/7373144
在上面的鏈接中回答:
Map<String, Object> jsonMap = new Gson().fromJson(
jsonString, new TypeToken<HashMap<String, Object>>() {}.getType()
);
在此之后,您可以遍歷鍵
int mHeight = y;
for (Map.EntrySet<String, String> kv : jsonMap.entrySet()) {
graph.drawString(kv.getKey() ": " kv.getValue(), x, mHeight 10);
mHeight = 10;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/384512.html
上一篇:SpringBoot-JsonRequestBody,帶/不帶引號的字串/列舉
下一篇:SpringBoot2.6 集成-internalPublisherAnnotationBeanPostProcessor回圈依賴
