JSON у Dart-клас
Перетворіть зразок JSON на Dart-клас з методами fromJson, toJson та вкладеними моделями.
JSON у Dart-клас
Вставте зразок JSON і цей інструмент визначає форму даних та генерує відповідний Dart-клас — той, який ви зазвичай писали б вручну для моделі Flutter. Вкладені об'єкти стають окремими класами, масиви стають типізованими полями `List<...>`, і кожен клас поставляється з названим конструктором, фабричним методом `fromJson` і методом `toJson`, тому результат можна одразу використовувати в проекті Flutter або Dart.
Опції керують стилем генерованого коду. «Назва класу» встановлює кореневий клас; вкладені класи названі на честь ключа JSON, який їх представив. «Безпека null з обов'язковими полями» позначає поля, присутні в кожному зразку, як `required` з типом, що не допускає null, і поля, які іноді відсутні або дорівнюють null, як nullable та optional — вимкніть, щоб зробити кожне поле nullable, що більш виконаво щодо невідповідних відповідей API. «Анотації json_serializable» перемикаються з написаних вручну тіл `fromJson`/`toJson` на анотації `@JsonSerializable()` та `@JsonKey`, які делегують файлу сгенерованої частини `.g.dart`, для проектів, які вже використовують цей пакет і build_runner. «Незмінні поля» роблять клас незмінним; «Генерувати copyWith» додає метод створення модифікованої копії без зміни оригіналу, а «Генерувати == і hashCode» додає порівняння значень, щоб два екземпляри з однаковими значеннями полів порівнювалися як рівні. «Відступ» перемикає генеруваний код між 2 і 4 пробілами.
Коли одна і та ж форма об'єкта повторюється — наприклад, масив елементів з однаковими полями — інструмент повторно використовує один клас замість генерування дублікату для кожного входження, і поле, відсутнє лише в деяких записах масиву, правильно виводиться як optional, а не required. Ключі JSON, які не є дійсними ідентифікаторами Dart, використовують різні регістри або конфліктують з ключовим словом або сгенерованим методом (наприклад, `copyWith` або `hashCode`), автоматично перейменовуються на боці Dart, тоді як оригінальний ключ зберігається для кодування та декодування.
Все працює локально у вашому браузері: зразок JSON ніколи не завантажується нікуди, що важливо, якщо він містить реальні дані користувача або форму відповіді внутрішнього API. Скопіюйте клас, завантажте його як файл .txt або надішліть результат назад на вхід, щоб перетворити одну вкладену частину далі.