【发布时间】:2021-10-19 12:35:48
【问题描述】:
我正在使用 Jackson 将 JSONObject 转换为 java。下面是我从 API 获取的 json 消息格式。
{"menu": {
"header": "SVG Viewer",
"items": [
{"0": "Open"},
{"1": "OpenNew", "label": "Open New"},
null,
{"2": "ZoomIn", "label": "Zoom In"},
{"3": "ZoomOut", "label": "Zoom Out"},
{"4": "OriginalView", "label": "Original View"},
null,
{"5": "Quality"},
{"6": "Pause"},
{"7": "Mute"},
null,
{"8": "Find", "label": "Find..."},
{"9": "FindAgain", "label": "Find Again"},
{"10": "Copy"},
{"11": "CopyAgain", "label": "Copy Again"},
{"12": "CopySVG", "label": "Copy SVG"},
{"13": "ViewSVG", "label": "View SVG"},
{"14": "ViewSource", "label": "View Source"},
{"15": "SaveAs", "label": "Save As"},
null,
{"16": "Help"},
{"17": "About", "label": "About Adobe CVG Viewer..."}
]
}}
想知道如何处理消息中的 id 键。它是一个从 0 到 17 的数字。使用在线转换器我得到它如下。
public class Item{
@JsonProperty("0")
public String _0;
@JsonProperty("1")
public String _1;
public String label;
@JsonProperty("2")
public String _2;
@JsonProperty("3")
public String _3;
@JsonProperty("4")
public String _4;
@JsonProperty("5")
public String _5;
想知道解决我的问题的最佳方法。
【问题讨论】:
-
您对这里的期望是什么。这里 0,1,2..17 是字段。根据在线转换,它只是正确的。
-
我想使用字符串变量而不是那些数字。我想我可以使用 HashMap ,其中所有这些数字都是键,值是菜单项。不确定。
-
在这种情况下,我必须忽略标签。
标签: json java-8 jackson jackson-databind