Я новичок в java Джексоне. Я хочу проанализировать json String и заменить один из имеющихся в нем массивов (размер которого равен 1) массивом размера 2, скопировав то же содержимое значения массива. Например: Вход json файл
{
"order_info": {
"order_number": "123456",
"order_date": "2019-11-08T10:23:29.502Z",
"attributes": {
"checkout_locale": "en_US"
},
"order_items": [
{
"categories": [
"Clothing"
],
"is_backordered": false,
"vendors": [
{
"name": "zxcx"
}
],
"discount_amount": 0,
"final_sale_date": "2019-03-01T20:07:16Z"
}
]
}
}
Выход json требуется:
{
"order_info": {
"order_number": "123456",
"order_date": "2019-11-08T10:23:29.502Z",
"attributes": {
"checkout_locale": "en_US"
},
"order_items": [
{
"categories": [
"Clothing"
],
"is_backordered": false,
"vendors": [
{
"name": "zxcx"
}
],
"discount_amount": 0,
"final_sale_date": "2019-03-01T20:07:16Z"
},
{
"categories": [
"Clothing"
],
"is_backordered": false,
"vendors": [
{
"name": "zxcx"
}
],
"discount_amount": 0,
"final_sale_date": "2019-03-01T20:07:16Z"
}
]
}
}
Я пробовал код, как показано ниже:
ObjectNode objectNode = (ObjectNode) mapper.readTree(ordersApiBasePayload);
ArrayNode nodeArray = (ArrayNode) jsonNode.get("order_info").get("order_items");
ArrayNode items = objectNode.putArray("order_items");
items.add(nodeArray.get(0));
items.add(nodeArray.get(0));
Но, выполнив таким образом, я не заменяю существующие order_items новыми двумя order_items. Я получаю два новых элемента order_items в конце json, как показано ниже:
{
"order_info": {
"order_number": "123456",
"order_date": "2019-11-08T10:23:29.502Z",
"attributes": {
"checkout_locale": "en_US"
},
"order_items": [
{
"categories": [
"Clothing"
],
"is_backordered": false,
"vendors": [
{
"name": "zxcx"
}
],
"discount_amount": 0,
"final_sale_date": "2019-03-01T20:07:16Z"
}
]
},
"order_items": [
{
"categories": [
"Clothing"
],
"is_backordered": false,
"vendors": [
{
"name": "zxcx"
}
],
"discount_amount": 0,
"final_sale_date": "2019-03-01T20:07:16Z"
},
{
"categories": [
"Clothing"
],
"is_backordered": false,
"vendors": [
{
"name": "zxcx"
}
],
"discount_amount": 0,
"final_sale_date": "2019-03-01T20:07:16Z"
}
]
}