Generator JSON ke Dart

Input JSON

Memuat editor…

Dart Dihasilkan

Configuration

Masukkan data JSON untuk menghasilkan class Dart

Class dengan null safety dan serialisasi JSON

Cara mengonversi JSON ke Dart – panduan langkah demi langkah

Gunakan generator JSON ke Dart ini untuk membuat kelas Dart yang aman untuk null dari sampel JSON untuk aplikasi Flutter dan layanan Dart.

  1. Langkah 1 – Tempelkan sampel JSON

    • Tempelkan objek atau larik JSON yang representatif ke editor kiri.
    • Sertakan objek bertumpuk, array, dan bidang nullable sehingga jenis dapat disimpulkan dengan benar.
    • Gunakan Import untuk memuat JSON dari file, URL, atau data sampel.
  2. Langkah 2 – Pilih opsi kelas Dart

    • Tetapkan Class Name untuk model root (misalnya Root).
    • Aktifkan keamanan nol dan konfirmasikan bagaimana kolom opsional direpresentasikan (String?).
    • Jika Anda menggunakan kode pembuatan, pilih gaya serialisasi (seperti json_serializable).
  3. Langkah 3 – Tinjau kode yang dihasilkan

    • Periksa nama bidang, tipe, dan bagaimana array/objek dimodelkan.
    • Sesuaikan opsi seperti Root Type Name, penanganan null, dan kerangka kerja jika tersedia.
    • Jika suatu bidang disimpulkan dengan salah, sesuaikan sampel JSON Anda dan buat ulang.
  4. Langkah 4 – Gunakan model Flutter/Dart

    • Tambahkan kelas yang dihasilkan ke proyek Anda (misalnya di bawah lib/models).
    • Parsing JSON menjadi model dengan pabrik fromJson atau serializer yang dihasilkan.
    • Jalankan flutter format untuk menjaga keluaran tetap konsisten dengan gaya proyek Anda.
  5. Langkah 5 – Salin atau unduh

    • Salin hasilnya ke proyek Anda atau unduh sebagai file.
    • Jalankan formatter/linter Anda agar sesuai dengan gaya kode Anda.
    • Tambahkan pustaka penguraian/serialisasi JSON jika bahasa Anda memerlukannya.

Kiat cepat

  • Jaga agar model kelas tetap kecil dan buat tipe penyimpanan untuk kecerahan.
  • Gunakan penguraian DateTime hanya jika format API Anda konsisten.
  • Lebih suka serializer yang dihasilkan untuk model besar guna mengurangi bug peta manual.
Contoh keluaran (disederhanakan)
// masukan JSON
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Dart models (simplified)
class Metadata {
  final String plan;
  const Metadata({required this.plan});
}

class Root {
  final int id;
  final String name;
  final String? email;
  final bool active;
  final List<String> roles;
  final Metadata metadata;
  final String createdAt;
  final double score;
  final Object? notes;

  const Root({
    required this.id,
    required this.name,
    required this.email,
    required this.active,
    required this.roles,
    required this.metadata,
    required this.createdAt,
    required this.score,
    required this.notes,
  });
}

Alat JSON & Dart terkait

Jelajahi lebih banyak alat JSON dan skema yang berfungsi baik bersama generator JSON ke Dart ini.

Pertanyaan yang Sering Diajukan

Fitur Dart apa yang didukung?

Generator membuat class Dart dengan type safety yang tepat, mendukung serialisasi JSON manual maupun paket json_annotation, menggunakan tipe nullable untuk nilai null, dan mengikuti konvensi penamaan Dart.

Bagaimana json_annotation bekerja?

Saat framework json_annotation dipilih, class yang dihasilkan menggunakan anotasi @JsonSerializable() dan menghasilkan metode fromJson/toJson secara otomatis dengan build_runner. Ini memberikan serialisasi JSON yang type-safe.

Bagaimana nilai nullable ditangani?

Nilai null di JSON dipetakan ke tipe nullable (?) di Dart untuk null safety. Field wajib menggunakan keyword 'required' di constructor, mengikuti prinsip null safety Dart.

Bagaimana dengan sistem tipe Dart?

Kode Dart yang dihasilkan memanfaatkan sistem tipe yang kuat dengan tipe yang sesuai (int, double, String, bool, List, Map) dan mengikuti konvensi Dart seperti camelCase untuk nama field.

Generator JSON ke Dart | JSONSwiss