我正在尝试创建类似下面的Json Structure
{
"properties": {
"a": {
"b": 1,
"c": "2",
"d": 3,
"e": 4
},
"f": {
"g": 5,
"h": "6",
"i": 7,
"j": 8
}
}
}
但我不能。
我写了以下代码
for(Annotation a : annotationList) {
ObjectNode objectNode1 = readAnnotation(a);
String name= getName(key);
objectNode.putPOJO(name, objectNode1);
propertiesObjectNode.put("properties", objectNode1);
}
创建一个JSON,但最终我只在属性中有一个节点。
我跟随Json
{
"properties" : {
"f" : {
"g" : 5,
"h" : "6",
"i" : 7,
"j" : 8
}
}
}
答案 0 :(得分:0)
propertiesObjectNode.put("properties", objectNode1);
这一行在for循环中,因此每次迭代都会覆盖它。最后,您只剩下1个节点,这是上一次迭代的结果。
答案 1 :(得分:0)
也许我不在这里,但如果您使用的是Jackson,为什么不使用ObjectMapper类。它会将POJO转换为JSON。
ObjectMapper mapper = new ObjectMapper();
MyPojo pojo = new MyPojo();
String json = mapper.writeValueAsString(pojo);
如果您想设置类似的东西,杰克逊可以拍摄地图并输出json版本。
你会有类似的东西:
Map<String, Object> a = new HashMap<String, Object>();
a.put("b", 1);
a.put("c", "2");
Map<String, Object> f = new HashMap<String, Object>();
f.put("g", 5);
f.put("h", "6");
Map<String, Object> propWrapper = new HashMap<String, Object>();
propWrapper.put("a", a)
propWrapper.put("f", f)
Map<String, Object> props = new HashMap<String, Object>();
props.put("properties", props);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(props);
这应该输出你正在寻找的结构。最好使用自己的POJO来获得更具意义的完整结构,但这应该提供一个想法。