CodeBlanks Logo Icon CodeBlanks

fromJson

fromJson ile nesne oluşturmayı öğrenirsin.

fromJson fabrika metodu

fromJson, bir sınıfın JSON Map'inden örnek oluşturan fabrika metodudur. Tip güvenli erişim sağlar; dynamic'e göre daha güvenlidir.

Örnek: factory User.fromJson(Map<String, dynamic> m) => User(m['name'] as String, m['age'] as int);. JSON'daki her alan cast edilir.

Kullanım: var u = User.fromJson(jsonDecode(s) as Map<String, dynamic>);. Böylece u.name tip güvenli erişimle çalışır.

Null güvenli fromJson

JSON alanları eksik olabilir; bu yüzden fromJson null güvenli yazılır. m['name'] as String? nullable yapar ya da varsayılan değer verilir: m['name'] ?? 'misafir'.

Sayısal alanlar için (m['age'] as num).toInt() güvenlidir; JSON'da int ve double ayrımı belirsiz olabilir.

İç içe nesneler için iç sınıfın fromJson'i çağrılır: Address.fromJson(m['address'] as Map<String, dynamic>).

Uygulama User.fromJson tanımla

class User { String name; int age; User(this.name, this.age); factory User.fromJson(Map<String, dynamic> m) => User(m['name'] as String, m['age'] as int); } tanımla. main içinde var u = User.fromJson({'name': 'Ayşe', 'age': 30}); ve print(u.name); ekle.

Başlangıç kodu

main.dart
void main() {
  // User sınıfını fromJson ile tanımla (main dışında)
  // fromJson ile örnek oluştur; name yazdır
}

Örnek çözüm

main.dart
class User {
  String name;
  int age;
  User(this.name, this.age);
  factory User.fromJson(Map<String, dynamic> m) =>
      User(m['name'] as String, m['age'] as int);
}

void main() {
  var u = User.fromJson({'name': 'Ayşe', 'age': 30});
  print(u.name);
}

Beklenen çıktı

Ayşe

Soru ve cevaplar

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

1 fromJson parçalarını eşleştir

Kavram Anlamı
factory Fabrika anahtarı
Map<String, dynamic> Giriş türü
as String Tip cast
User(...) Örnek oluşturma

2 fromJson ne döndürür?

  • String
  • Map
  • Sınıf örneği Doğru cevap
  • Future

Açıklama: fromJson sınıf örneği döndürür.

3 Tip cast

Soru
m['name'] ____ String
Cevap
m['name'] as String

Açıklama: 'as String' dynamic'i String'e cast eder.

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