json_serializable dalam Praktik
Membuat serialisasi model secara otomatis
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.0Beri 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 buildGanti 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. 🎉
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
- Annotation Bawaan: override, deprecated
- Menulis Annotation Kustom
- Pembuatan Kode dengan build_runner
- json_serializable dalam Praktik