Как получить доступ к элементу во вложенных данных JSON (Map<String, Object>) и изменить данные с помощью java.util.streJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как получить доступ к элементу во вложенных данных JSON (Map<String, Object>) и изменить данные с помощью java.util.stre

Сообщение Anonymous »

Я хотел бы изменить данные внутри вложенного JSON () с использованием API Java Stream.
Это данные JSON:

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

{
"schoolId": "10928391",
"schoolName": "school A",
"teachers" : [
{
"teacherId": "00001",
"teacherName:": "teacher A",
"subject": "Computer Science",
"lectures": [
{
"id": "CS102",
"name": "Algorithm"
},
{
"id": "CS330",
"name": "Data Communications and Networking"
}
]
},
{
"teacherId": "00002",
"teacherName:": "teacher B",
"subject": "Computer Science",
"lectures": [
{
"id": "CS103",
"name": "Data Structure"
},
{
"id": "CS104",
"name": "Data Structures in C++"
}
]
},
{
"teacherId": "00003",
"teacherName:": "teacher C",
"subject": "Computer Science",
"lectures": [
{
"id": "CS100",
"name": "Introduction to Programming (Java)"
},
{
"id": "CS401",
"name": "Object Oriented Programming"
}
]
}
]
}
Это мой код, который десериализует данные JSON в schoolInfo:

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

ObjectMapper mapper = new ObjectMapper();
Map schoolInfo = mapper.converValue(restTemplate.exchange(url, HttpMethod.GET,  .... ).getBody(), HashMap.class);
Данные, к которым я хочу получить доступ и изменить, — это лекции.
Я пытался изменить все элементы внутри лекций
Я пытался изменить все элементы внутри лекций. code> массив.
Например,

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

"lectures": [
{
"id": "CS102",
"name": "Algorithm"
},
{
"id": "CS330",
"name": "Data Communications and Networking"
}
]
Замените всю информацию о лекциях в данных лекций следующим образом:

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

"lectures": [
{
"lectureId": "CS102",
"lectureName": "Algorithm",
"lectureRoom": "Room A-1"
},
{
"lectureId": "CS330",
"lectureName": "Data Communications and Networking",
"lectureRoom": "Room A-2"
}
]
С помощью карты и фильтра я мог получить доступ к объекту «учителя», но не смог понять, как получить объекты лекций внутри учителей.< /p>

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

System.out.println(jsonMap.entrySet().stream()
.filter(map -> map.getKey().equals("teachers")).collect(Collectors.toList()).toString());
Любой совет будет очень полезен!


Подробнее здесь: https://stackoverflow.com/questions/654 ... data-and-m
Ответить

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

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

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

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

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