我有一个看起来像这样的JSON
[
{
"itemLabel":"Social Media",
"itemValue":90
},
{
"itemLabel":"Blogs",
"itemValue":30
},
{
"itemLabel":"Text Messaging",
"itemValue":60
},
{
"itemLabel":"Email",
"itemValue":90
},
]
我想将所有这些对象放入一个数组中,以便在我的一个代码中更容易地操作它。因此我想做一些像
这样的事情[
{
"data": [
{
"itemLabel": "Social Media",
"itemValue": 90
},
{
"itemLabel": "Blogs",
"itemValue": 30
},
{
"itemLabel": "Text Messaging",
"itemValue": 60
},
{
"itemLabel": "Email",
"itemValue": 90
}
]
}
]
如何使用Jackson添加data
数组元素?我大部分时间都是用杰克逊读过的,但没有做太多的写作。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:9)
我不完全确定您的意图是什么,并且可能有一个更优雅的解决方案(使用POJO而不是Collections和Jacksons JSON表示),但我想这个例子会清除它。但是如果你有一些更复杂的处理,你可能想要编写自定义(de)序列化器或类似的东西。使用Jackson 2.3.3撰写
ObjectMapper mapper = new ObjectMapper();
JsonNode parsedJson = mapper.readTree(json); //parse the String or do what you already are doing to deserialize the JSON
ArrayNode outerArray = mapper.createArrayNode(); //your outer array
ObjectNode outerObject = mapper.createObjectNode(); //the object with the "data" array
outerObject.putPOJO("data",parsedJson);
outerArray.add(outerObject);
System.out.println(outerArray.toString()); //just to confirm everything is working