CodeBlanks Logo Icon CodeBlanks

toJson

toJson ile nesneden JSON'a öğrenirsin.

toJson metodu

toJson, bir sınıf örneğini JSON Map'ine çeviren metoddur. jsonEncode bu metodu otomatik çağırmaz; elle çağırman gerekir.

Örnek: Map<String, dynamic> toJson() => {'name': name, 'age': age};. Sonra jsonEncode(u.toJson()) ile JSON String üretilir.

İç içe nesneler için toJson zincirle çağrılır: 'address': address.toJson(). Listeler için items.map((i) => i.toJson()).toList().

Simetrik fromJson/toJson

İyi tasarımda fromJson(toJson(u)) özgün örneğe eşit olmalıdır. Bu, serileştirme türü kayıpsızdır ve test ile doğrulanır.

Alan adları JSON'da farklı olabilir: toJson {'user_name': name} döner, fromJson m['user_name'] okur. İkisi uyumlu olmalı.

Sürümlü API'ler için @JsonKey(name: 'legacy_name') gibi annotation'lar kullanılır (json_serializable ile).

Uygulama User toJson tanımla

class User { String name; int age; User(this.name, this.age); Map<String, dynamic> toJson() => {'name': name, 'age': age}; } tanımla. main içinde var u = User('Ayşe', 30);, import 'dart:convert'; ekle ve print(jsonEncode(u.toJson())); ekle.

Başlangıç kodu

main.dart
void main() {
  // dart:convert import ekle; User sınıfını toJson ile tanımla
  // örnek oluştur; toJson + jsonEncode ile yazdır
}

Örnek çözüm

main.dart
import 'dart:convert';

class User {
  String name;
  int age;
  User(this.name, this.age);
  Map<String, dynamic> toJson() => {'name': name, 'age': age};
}

void main() {
  var u = User('Ayşe', 30);
  print(jsonEncode(u.toJson()));
}

Beklenen çıktı

{"name":"Ayşe","age":30}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 jsonEncode(u) ne yapar (u bir sınıf)?

  • Otomatik toJson çağırır
  • Map döndürür
  • Boş String verir
  • Hata fırlatır Doğru cevap

Açıklama: jsonEncode sınıfı direkt kabul etmez; hata fırlatır.

2 toJson parçalarını eşleştir

Kavram Anlamı
toJson() Sınıf → Map
Map<String, dynamic> Dönüş türü
jsonEncode(u.toJson()) String üretimi
.map((i) => i.toJson()) Liste dönüşümü

3 toJson dönüş türü

Soru
Map<String, dynamic> ____() => {'name': name};
Cevap
Map<String, dynamic> toJson() => {'name': name};

Açıklama: toJson metodu Map<String, dynamic> döndürür.

İleri seviye bölümündeki tüm dersler