Попытка добавить вложенный массив в массив в JSON
.
public SecondArray createOrUpdate(SecondArray object) {
try {
ObjectMapper mapper = new ObjectMapper();
ObjectNode root = (ObjectNode) mapper.readTree(jsonFile);
ObjectNode newArrayElement = new ObjectNode(mapper.getNodeFactory());
ObjectNode newItem = new ObjectNode(mapper.getNodeFactory());
ArrayNode secondArr = (ArrayNode) root.get("secondArray");
newArrayElement.put("number", object.getNumber());
newArrayElement.put("data", object.getData);
for (SecondArray.Item items: object.getItems()) {
newItem.put("item1", items.getItem1));
newItem.put("item2", items.getItem2);
}
secondArr.add(mapper.convertValue(newArrayElement, JsonNode.class));
return object;
} catch (IOException e) {
e.printStackTrace();
}
}
Иметь этот вход JSON
:
{
"firstArray":[
{
"data1":1,
"data2":"DATA"
},
{
"data1":2,
"data2":"DATA2"
}
],
"secondArray":[
{
"number":1,
"data":"DATA3",
"items":[
{
"item1":"sword",
"item2":"mace"
},
{
"item1":"dagger",
"item2":"axe"
}
]
}
]
}
Необходимо добавить новый объект всуществующий secondArray
с такими же атрибутами.В настоящее время я получаю что-то вроде этого:
{
"firstArray":[
{
"data1":1,
"data2":"DATA"
},
{
"data1":2,
"data2":"DATA2"
}
],
"secondArray":[
{
"number":1,
"data":"DATA3",
"items":[
{
"item1":"sword",
"item2":"mace"
},
{
"item1":"dagger",
"item2":"axe"
}
}
],
{
"number":2,
"data":"DATA4",
"items":[
{
"item1":"NEWITEM3",
"item2":"NEWITEM4"
}
]
}
}
]
}
Как мне получить мой код для добавления newArrayElement
к secondArray
с newArrayElement
, имеющим по крайней мере 2 массива newItems
внутри newArrayelement