więc moja jsonStr
jest toDodawanie obiekt do JSON za pomocą Jacksona
[
{
"data": [
{
"itemLabel": "Social Media",
"itemValue": 90
},
{
"itemLabel": "Blogs",
"itemValue": 30
},
{
"itemLabel": "Text Messaging",
"itemValue": 60
},
{
"itemLabel": "Email",
"itemValue": 90
}
]
}
]
Chcę dodać obiekt po tablicy data
jak ta
[
{
"data": [
{
"itemLabel": "Social Media",
"itemValue": 90
},
{
"itemLabel": "Blogs",
"itemValue": 30
},
{
"itemLabel": "Text Messaging",
"itemValue": 60
},
{
"itemLabel": "Email",
"itemValue": 90
}
],
"label": "2007"
}
]
Czytając tu jest napisane coś jak
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(jsonStr);
((ObjectNode) jsonNode).put("label", "2007");
String json = mapper.writeValueAsString(jsonNode);
return json;
Problem polega na tym, że wciąż pojawia się błąd
java.lang.ClassCastException: com.fasterxml.jackson.databind.node.ArrayNode cannot be cast to com.fasterxml.jackson.databind.node.ObjectNode
Co robię źle? Obecnie używam Jackson-core 2.2.2
Węzeł najwyższego poziomu reprezentuje tablicę, a nie obiekt. Zanim dodasz właściwość, musisz przejść jedną dźwignię głębiej. – Henry
To wyjaśnia, dlaczego dostaję błąd, ale czy mógłbyś rozwinąć nieco więcej? Nie jestem pewien, jak pójść głębiej. Widzę, że potrzebuję ArrayNode? – cYn