Java Jackson обновляет экземпляр второго значения json в массивеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java Jackson обновляет экземпляр второго значения json в массиве

Сообщение Anonymous »

Привет всем, я пытаюсь понять, как обновить часть моего json. До сих пор я не нашел нигде, где бы показано, как это сделать.
Например, вот что мне нужно обновить:

Код: Выделить всё

{
"lastUpdated": "",
"firetvs": [
{
"name": "lr",
"ip": "",
"mac": "",
"token": ""
},
{
"name": "mbr",
"ip": "",
"mac": "",
"token": ""
},...ETC....
Поэтому мне нужно обновить данные в разделе

Код: Выделить всё

"name": "mbr"
"mac": ""
часть, в которой мне нужно будет обновить Mac-адрес примерно так:

Код: Выделить всё

"name": "mbr"
"mac": "C1:41:Q4:E8:S1:98:V1"
Я нашел код, который позволяет мне обновлять стандартное значение, например мой lastUpdated, но не для чего-то, что является частью массива:

Код: Выделить всё

String jsonObject = "{" +
"\"lastUpdated\": \"\"," +
"\"firetvs\": [" +
"{" +
"\"name\": \"lr\"," +
"\"ip\": \"\"," +
"\"mac\": \"\"," +
"\"token\": \"\"" +
"}," +
"{" +
"\"name\": \"mbr\"," +
"\"ip\": \"\"," +
"\"mac\": \"\"," +
"\"token\": \"\"" +
"}" +
"]" +
"}";

ObjectMapper objectMapper = new ObjectMapper();
ObjectNode objectNode = null;

try {
objectNode = objectMapper.readValue(jsonObject, ObjectNode.class);
objectNode.put("lastUpdated", "02-08-2024");
Log.d("test", objectNode.toPrettyString());
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
Я нашел это:

Код: Выделить всё

objectNode.with("firetvs").put("mac", "C1:41:Q4:E8:S1:98:V1");
Но это не сработает, поскольку он просто найдет первый экземпляр «mac» и обновит это значение вместо обновления второго его экземпляра. И я также получаю сообщение об ошибке:

Свойство «firetvs» имеет значение, не относящееся к типу ObjectNode (но com.fasterxml.jackson.databind.node. ArrayNode)

Итак, как мне это сделать?

Подробнее здесь: https://stackoverflow.com/questions/782 ... e-in-array
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»