gpt4 book ai didi

java - 使用 Jackson 向 JSON 添加属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:18:35 26 4
gpt4 key购买 nike

所以我的 jsonStr 是这样的

[
{
"data": [
{
"itemLabel": "Social Media",
"itemValue": 90
},
{
"itemLabel": "Blogs",
"itemValue": 30
},
{
"itemLabel": "Text Messaging",
"itemValue": 60
},
{
"itemLabel": "Email",
"itemValue": 90
}
]
}
]

我想像这样在 data 数组之后添加一个属性

[
{
"data": [
{
"itemLabel": "Social Media",
"itemValue": 90
},
{
"itemLabel": "Blogs",
"itemValue": 30
},
{
"itemLabel": "Text Messaging",
"itemValue": 60
},
{
"itemLabel": "Email",
"itemValue": 90
}
],
"label": "2007"
}
]

读到这里它说要做类似的事情

ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(jsonStr);
((ObjectNode) jsonNode).put("label", "2007");

String json = mapper.writeValueAsString(jsonNode);

return json;

问题是我不断收到错误

java.lang.ClassCastException: com.fasterxml.jackson.databind.node.ArrayNode cannot be cast to com.fasterxml.jackson.databind.node.ObjectNode

我做错了什么?我目前正在使用 Jackson-core 2.2.2

最佳答案

您的顶级节点代表一个数组,而不是一个对象。在添加属性之前,您需要更深入一层。

你可以使用这样的东西:

JsonNode elem0 = ((ArrayNode) jsonNode).get(0);
((ObjectNode) elem0).put("label", "2007");

当然,如果结构看起来不像您预期​​的那样,您可能希望添加一些错误处理。

关于java - 使用 Jackson 向 JSON 添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com