Dart Academy · Pelajaran

json_serializable dalam Praktik

Membuat serialisasi model secara otomatis

Pelajaran 4 dari 413 langkah

json_serializable dalam Praktik adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Dart Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Dart Academy mencakup 4 pelajaran total.

Masalah Kode Berulang JSON

Menulis fromJson dan toJson secara manual itu melelahkan dan rentan terhadap kesalahan. Paket json_serializable menghasilkan keduanya untuk Anda berdasarkan sebuah model. 📦

Tambahkan Paket

Anda memerlukan json_annotation sebagai dependensi biasa, serta json_serializable dan build_runner sebagai dependensi pengembangan untuk pembuatan kode.

dependencies:
  json_annotation: ^4.9.0

Beri Anotasi pada Kelas

Tandai model Anda dengan @JsonSerializable. Anotasi ini memberi tahu generator untuk menghasilkan kode serialisasi bagi kelas tersebut.

@JsonSerializable()
class User {
  final String name;
  User(this.name);
}

Deklarasikan Berkas part

Tambahkan direktif part agar berkas Anda dapat menyertakan fungsi pembantu yang dihasilkan. Namanya mencerminkan nama berkas Anda dengan akhiran .g.dart.

part 'user.g.dart';

Hubungkan fromJson

Tambahkan factory yang meneruskan pemanggilan ke fungsi hasil generasi. Fungsi pembantu _$UserFromJson dibuat untuk Anda oleh pembangun.

factory User.fromJson(Map<String, dynamic> j) =>
    _$UserFromJson(j);

Hubungkan toJson

Tambahkan metode yang memanggil penulis hasil generasi. Fungsi pembantu _$UserToJson mengubah objek Anda kembali menjadi peta JSON.

Map<String, dynamic> toJson() => _$UserToJson(this);

Hasilkan Kode

Jalankan build_runner sekali, lalu berkas user.g.dart akan muncul dengan kedua fungsi pembantu yang telah diterapkan sepenuhnya dan siap digunakan.

dart run build_runner build

Ganti Nama Kunci JSON

Jika bidang API berbeda dari nama Dart Anda, gunakan @JsonKey untuk memetakannya. Kode Anda tetap rapi, sementara JSON tetap sesuai dengan server.

@JsonKey(name: 'full_name')
final String fullName;

Berikan Nilai Bawaan

Anda dapat memberikan nilai pengganti untuk bidang yang hilang. Opsi defaultValue mengisi nilai ketika kunci tersebut tidak ada dalam JSON.

@JsonKey(defaultValue: 0)
final int score;

Model Bertingkat Langsung Berfungsi

Jika sebuah bidang merupakan kelas @JsonSerializable lainnya, generator akan melakukan serialisasi secara rekursif. Objek bertingkat tidak memerlukan upaya tambahan dari Anda.

Gunakan seperti Dart Biasa

Setelah kode dibuat, Anda mengurai dan menyandikannya dengan pemanggilan metode biasa. Fungsi pembantu hasil generasi tetap tersembunyi, sehingga tempat pemanggilan Anda terbaca secara alami.

final u = User.fromJson(data);
final back = u.toJson();

Pemeriksaan Singkat

Anotasi apa yang menandai sebuah kelas untuk pembuatan kode JSON?

Ringkasan

Beri anotasi dengan @JsonSerializable, hubungkan fromJson dan toJson, lalu jalankan build_runner. Gunakan @JsonKey untuk memetakan nama bidang dan nilai bawaannya. 🎉

Gratis untuk memulai

Belajar Dart dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “json_serializable dalam Praktik” gratis?

Ya — teks lengkap “json_serializable dalam Praktik” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Dart Academy, upgrade ke CoddyKit PRO. Kursus Dart Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “json_serializable dalam Praktik”?

Membuat serialisasi model secara otomatis Kamu berlatih Dart Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Dart Academy?

Tidak diperlukan pengalaman sebelumnya. Dart Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “json_serializable dalam Praktik” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Dart Academy ini?

Ya. Setiap pelajaran Dart Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Annotation Bawaan: override, deprecated
  2. Menulis Annotation Kustom
  3. Pembuatan Kode dengan build_runner
  4. json_serializable dalam Praktik
← Kembali ke Dart Academy