1. Parsing JSON dengan Library dart:convert
JSON (JavaScript Object Notation) adalah standar transmisi data paling populer antara aplikasi frontend mobile/web dan backend server.
jsonDecode() (String JSON → Map)
Mengubah teks mentah JSON menjadi objek Map Dart yang dapat diakses kuncinya.
jsonEncode() (Object/Map → String JSON)
Mengonversi objek atau Map Dart menjadi string teks JSON untuk dikirim ke server.
2. Pola Desain Data Model (fromJson & toJson)
import 'dart:convert';
class SiswaModel {
final int id;
final String nama;
final String jurusan;
final int nilai;
SiswaModel({
required this.id,
required this.nama,
required this.jurusan,
required this.nilai,
});
// Factory Constructor untuk mem-parsing dari Map JSON
factory SiswaModel.fromJson(Map<String, dynamic> json) {
return SiswaModel(
id: json['id'],
nama: json['nama'],
jurusan: json['jurusan'],
nilai: json['nilai'],
);
}
// Method untuk mengubah object kembali ke Map JSON
Map<String, dynamic> toJson() {
return {
'id': id,
'nama': nama,
'jurusan': jurusan,
'nilai': nilai,
};
}
}
void main() {
String jsonMentah = '{"id": 1, "nama": "Rizky Fauzi", "jurusan": "TJKT", "nilai": 95}';
// 1. Decode String ke Map
Map<String, dynamic> mapData = jsonDecode(jsonMentah);
// 2. Instansiasi Data Model
SiswaModel siswa = SiswaModel.fromJson(mapData);
print("Siswa: ${siswa.nama} | Jurusan: ${siswa.jurusan}");
// 3. Encode kembali ke String JSON
String jsonHasil = jsonEncode(siswa.toJson());
print("JSON Siap Kirim: $jsonHasil");
}