Перейти до вмісту

JSON у Java клас

Перетворіть зразок JSON у Java класи з автоматичним виведенням вкладених типів та узагальнених списків.

Введення
Вихід

JSON у Java клас

Вставте зразок JSON і цей інструмент генерує Java класи, необхідні для його представлення, виводячи типи полів, типи вкладених об'єктів та типи елементів узагальнених списків прямо з наданих значень. Він призначений для backend розробників, які отримують відповідь API або файл конфігурації та потребують типізованої моделі для десеріалізації без необхідності вручну писати кожне поле.

Виберіть спосіб анотування полів: відсутність, Jackson's @JsonProperty або Gson's @SerializedName, кожен з яких зберігає вихідний ключ JSON таким чином, щоб серіалізація все ще відповідала після перейменування поля на camelCase. Вимкніть геттери та сетери для простого класу з відкритими полями або замініть їх Lombok's @Data або Java record, де компоненти займають місце полів та методів доступу. Типи-обгортки (Integer, Boolean, Double) можна скрізь використовувати замість примітивів; інструмент завжди використовує обгортку де значення дійсно опціональне, оскільки примітив ніколи не може містити null. Оголошення пакета додається при необхідності, а вкладені об'єкти відображаються як статичні вкладені класи в одному файлі або як окремі класи верхнього рівня.

Коли одна й та ж структура з'являється більше одного разу — повторювані об'єкти в масиві або два сусідні поля з ідентичною структурою — інструмент повторно використовує один згенерований клас замість його дублювання. Поля спостережувані з різними структурами по всьому масиву об'єднуються в один клас, поля відсутні в деяких елементах позначаються як опціональні. Числа залишаються як int де вони підходять у 32-бітний діапазон і розширюються до long або double за необхідності; ключ JSON який не може бути ідентифікатором Java, наприклад емодзі, повертається до безпечного згенерованого імені.

Усе працює локально у вашому браузері — зразок JSON ніколи не завантажується і не передається на сервер. Скопіюйте згенеровані класи у свій проект, завантажте їх як файл .txt або відправте вихід назад на вхід для запуску іншого інструменту над ним.

FAQ

Він обробляє вкладені об'єкти та масиви?
Так. Вкладені об'єкти стають своїм власним класом (вкладеним або окремим залежно від опції розташування класу) і масиви стають узагальненим java.util.List типу елемента.
Що відбувається з полем, якого не вистачає в деяких зразках об'єктів?
Воно позначається як опціональне і якщо це примітив, то переводиться на його тип-обгортку (Integer, Boolean, Double) так поле може законно бути null.
Чи можу я використовувати Lombok або Java record замість вручну написаних геттерів та сетерів?
Так. Включіть Lombok @Data для класу анотованого @Data та приватними полями або використовуйте Java record для генерування record з полями як компонентами — обидва замінюють вручну написані методи доступу.
Як вибираються імена полів коли ключ JSON не є валідним ідентифікатором Java?
Ключ перетворюється у camelCase; ключ який виробляє порожнім або як ключове слово ім'я повертається до безпечного згенерованого імені такого як field або ключове слово з завершальним підкресленням.
Мій JSON завантажується кудись?
Ні. Генерування класу працює повністю у вашому браузері — ваш зразок JSON ніколи не відправляється на сервер.