Можно ли переписать (или обновить) JsonNode
на новый с новыми именами атрибутов и обойти некоторые узлы?
Предположим, у меня есть Json как:
{
"reservations":[
{
"id":"1318504",
"deposit":720,
"rooms":[
{
"name":"room1",
"id":"28902"
},
{
"name":"room2",
"id":"28906"
}
],
"customers":[
{
"id":3,
"country":"UK",
"firstName":"John"
}
]
},
{
"id":"1318501",
"deposit":68,
"rooms":[
{
"name":"room3",
"id":"28860"
},
{
"name":"room4",
"id":"28886"
}
]
}
]
}
Я прочитал это как
ObjectMapper mapper = new ObjectMapper();
ObjectNode node = (ObjectNode) mapper.readTree(new File("path to json file"));
И теперь я хотел бы иметь функцию типа JsonNode rewrite(List<String> ignoreData)
, и если я вызову ее с аргументами ignoreData = ["customers"]
, у меня будет новый JsonNode
, который будет выглядеть так:
{
"reservations":[
{
"reservations.id":"1318504",
"reservations.deposit":720,
"reservations.rooms":[
{
"reservations.rooms.name":"room1",
"reservations.rooms.id":"28902"
},
{
"reservations.rooms.name":"room2",
"reservations.rooms.id":"28906"
}
]
},
{
"reservations.id":"1318501",
"reservations.deposit":68,
"reservations.rooms":[
{
"reservations.rooms.name":"room3",
"reservations.rooms.id":"28860"
},
{
"reservations.rooms.name":"room4",
"reservations.rooms.id":"28886"
}
]
}
]
}
Возможно ли это с библиотекой Джексона? Псевдокод мне подходит.