Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpJsNs 143 of 322 menu
◀ ▶

Вложенный объект в Java

JSON умеет вкладывать объекты друг в друга через вложенные фигурные скобки. В Java для этого достаточно объявить компонент с типом другого record или класса с полями.

Адрес и контакт клиента логично разделить: сначала тип для города и индекса, затем тип заказа с полем адреса:

public record GeoPoint(String city, String postal) {} public record ClientOrder(int id, GeoPoint shipTo) {}

Запись в строку собирает один JSON-объект, где значение shipTo само является объектом с ключами city и postal:

import com.fasterxml.jackson.databind.ObjectMapper; public record GeoPoint(String city, String postal) {} public record ClientOrder(int id, GeoPoint shipTo) {} public class Main { public static void main(String[] args) throws Exception { ClientOrder order = new ClientOrder( 501, new GeoPoint("Oslo", "0150") ); ObjectMapper mapper = new ObjectMapper(); System.out.println(mapper.writeValueAsString(order)); } }

Чтение из текста работает в обратном порядке: сначала разбирается внешний объект, затем вложенный блок для GeoPoint. Если внутренний тип нельзя создать из JSON, разбор всего заказа завершится ошибкой.

Объявите record DurationSlot с компонентами hours и minutes, затем MeetingPlan с title и slot типа DurationSlot. Запишите план с названием "sync" и длительностью 1 час 30 минут в JSON и выведите строку.

Дана строка JSON:

String raw = "{\"title\":\"demo\",\"slot\":{\"hours\":0,\"minutes\":45}}";

Из этой строки восстановите MeetingPlan и выведите название и суммарные минуты как одно число 45.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить