JSON & Model Data

Mengubah teks JSON dari server menjadi object Dart dengan jsonDecode dan factory constructor fromJson.

Part 20 dari 23 ± 40 menit Gratis

JSON: bahasa data di internet

Server hampir selalu mengirim data dalam format JSON, yaitu teks dengan pola mirip Map dan List:

[
  {"id": 1, "title": "Flutter 4 rilis"},
  {"id": 2, "title": "Dart makin cepat"}
]

Teks seperti ini belum bisa dipakai langsung. Kita perlu mengubahnya menjadi object Dart yang rapi dan aman tipe.

Langkah 1: jsonDecode

import 'dart:convert';

final data = jsonDecode(teks) as List;

jsonDecode mengubah teks JSON menjadi List dan Map biasa. Kata as List menyatakan "saya tahu hasilnya berupa List".

Langkah 2: model

Buat class yang mewakili satu data. Di sini namanya Berita:

class Berita {
  final int id;
  final String judul;

  const Berita({required this.id, required this.judul});

  factory Berita.fromJson(Map<String, dynamic> json) {
    return Berita(
      id: json['id'] as int,
      judul: json['title'] as String,
    );
  }
}
  • factory Berita.fromJson(...) adalah constructor khusus yang membuat Berita dari sebuah Map. Dengan fromJson, kunci JSON ('title') dipetakan ke field Dart (judul).
  • json['id'] as int menegaskan tipenya. Jika servernya salah mengirim tipe, error muncul di sini, bukan jauh di tampilan.
  • Map<String, dynamic> berarti kunci berupa teks dan nilainya bertipe apa saja.

Langkah 3: ubah semuanya sekaligus

final daftar = data
    .map((e) => Berita.fromJson(e as Map<String, dynamic>))
    .toList();

Hasilnya List<Berita> yang aman dipakai: daftar[0].judul. Pola jsonDecode → map(fromJson) → toList akan kamu ulang di hampir setiap aplikasi yang memakai internet.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X