UTILS.
100% в браузере

JSON в Java POJO

Создайте классы Java POJO из примера JSON с аннотациями Jackson или Gson, сгенерированными геттерами и сеттерами и boxed-типами для nullable-полей.

результат

Об этом инструменте

Инструмент JSON в Java POJO преобразует вставленный пример JSON в классы моделей Java, как это делает jsonschema2pojo, но мгновенно в вашем браузере. Он разбирает JSON, рекурсивно выводит типы Java и выдаёт по одному классу на объект: строки становятся String, целые числа — int или long, другие числа — double, логические значения — boolean, массивы — List<T>, а вложенные объекты — собственными классами в PascalCase, объявленными раньше родителей, которые их используют.

Весь разбор и генерация выполняются локально через JSON.parse и обычный JavaScript, поэтому ваши данные никогда не покидают страницу. Поля приводятся к camelCase; когда ключ JSON ещё не в camelCase, инструмент добавляет @JsonProperty("originalKey") (Jackson) или @SerializedName("originalKey") (Gson), либо ничего в режиме простых полей. Поля, которые могут быть null в любом примере, используют boxed-типы-обёртки (Integer, Long, Double, Boolean), чтобы null был представим. Классы Jackson несут @JsonIgnoreProperties(ignoreUnknown = true) для прямой совместимости.

Переключатель стиля аннотаций выбирает Jackson (по умолчанию), Gson или без аннотаций, и включаются только реально используемые импорты. Переключатель аксессоров выбирает между сгенерированными методами getX()/setX() для приватных полей (по умолчанию) и простыми публичными полями. Скопируйте результат или скачайте его как файл .java, чтобы вставить прямо в проект.

Часто задаваемые вопросы

Какие типы Java создаются?
string в String, целое число в int (long, когда значение превышает диапазон int), нецелое число в double, логическое значение в boolean, массив в List<T>, а объект в именованный класс. Поля, которые могут быть null, используют boxed-типы — Integer, Long, Double, Boolean.
Аннотации Jackson или Gson?
Переключатель аннотаций выбирает Jackson (@JsonProperty плюс @JsonIgnoreProperties(ignoreUnknown = true)), Gson (@SerializedName) или ничего. Аннотации добавляются только тогда, когда имя поля в camelCase отличается от исходного ключа JSON.
Получу ли я геттеры и сеттеры?
По умолчанию каждое приватное поле получает сгенерированные getX() и setX(). Переключите аксессоры на простые публичные поля, если предпочитаете голые поля в стиле record без методов-аксессоров.
Отправляется ли мой JSON куда-либо?
Нет. JSON разбирается, а классы генерируются целиком в вашем браузере обычным JavaScript. Ничего не загружается, поэтому вы можете безопасно вставлять внутренние ответы API.

Больше инструментов