[英]Parsing json string to java with complex datastructure(jackson)
我正在尝试将下面的json字符串转换为java对象,但是我正在获取空对象。 在prop2对象下,可以有任意数量的键值对(其中key是字符串,value是数组)
{
"Level1": {
"prop1": "",
"prop2": {
"one": [{
"ip": "1.2.3.4",
"port": "100"
}],
"ten": [{
"ip": "10.20.20.10",
"port": "200"
}]
}
}
}
我有这个类结构,但是我正在把ipAndPorts映射为空。
@JsonIgnoreProperties(ignoreUnknown = true)
static class Root {
@JsonProperty("Level1")
private Level1 level1;
}
@JsonIgnoreProperties(ignoreUnknown = true)
static class Level1 {
@JsonProperty("prop2")
private Prop2 prop2;
}
@JsonIgnoreProperties(ignoreUnknown = true)
static class Prop2 {
private Map<String, List<IpAndPort>> ipAndPorts = Collections.emptyMap();
}
@JsonIgnoreProperties(ignoreUnknown = true)
static class IpAndPort {
@JsonProperty("port")
private String port;
}
我的java类应如何正确显示“ prop2”?
记录:该问题已通过使用解决
@JsonIgnoreProperties(ignoreUnknown = true)
static class Level1 {
@JsonProperty("prop2")
private Map<String, List<IpAndPort>> ipAndPorts = Collections.emptyMap();
}
直接不使用Prop2
类。 否则,Jackson将在prop2
JSON对象下期望一个名为ipAndPorts
的JSON属性。
我认为您首先要按照想要的样子创建Java类,然后使用Jackson将其序列化为JSON。 您将看到结果JSON的结构,并查看是否以及如何需要修改您的类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.