CodeBlanks Logo Icon CodeBlanks

List<dynamic>

JSON listelerini List<dynamic> olarak okumayı öğrenirsin.

JSON dizisini List<dynamic>'e çevirmek

Bir JSON dizisi (köşeli parantezlerle) jsonDecode ile List<dynamic>'e çevrilir. Listenin elemanlarına index ile erişirsin.

const s = '["a", "b", "c"]';
final liste = jsonDecode(s) as List<dynamic>;
print(liste[0]);  // a
print(liste.length);  // 3

Elemanların türü dynamic'dir; güvenli kullanım için as ile türe çevirirsin.

Listeyi türe çevirmek: cast

Listeyi tür güvenli hale getirmek için cast<String>() ya da .map kullanılır. cast<String>() her elemanı String sayar; değilse hata fırlatır.

final liste = jsonDecode('["x","y"]') as List<dynamic>;
final kelimeler = liste.cast<String>();
print(kelimeler[1]);  // y

Bu şekilde kelimeler artık List<String> olur ve elemanlara güvenle erişirsin.

Uygulama Listedeki ikinci elemanı yazdır

s dizesini jsonDecode ile çöz, as List ile listeye çevir ve ikinci elemanı print ile yazdır.

Başlangıç kodu

main.dart
import 'dart:convert';

void main() {
  const s = '["elma", "armut", "kiraz"]';
  // JSON dizisini çöz ve ikinci elemanı yazdır
}

Örnek çözüm

main.dart
import 'dart:convert';

void main() {
  const s = '["elma", "armut", "kiraz"]';
  final liste = jsonDecode(s) as List;
  print(liste[1]);
}

Beklenen çıktı

armut

Soru ve cevaplar

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

1 jsonDecode('[1,2,3]') ne döndürür?

  • String
  • List<dynamic> Doğru cevap
  • Bir Future
  • Map<String, dynamic>

Açıklama: jsonDecode bir JSON dizisini List<dynamic>'e çevirir. Nesne olsaydı Map dönerdi; ama köşeli parantezli girdi listedir.

2 İlk elemana eriş

Soru
import 'dart:convert';

void main() {
  const s = '[10, 20, 30]';
  final liste = jsonDecode(s) as List;
  final ilk = liste[____];
  print(ilk);
}
Cevap
import 'dart:convert';

void main() {
  const s = '[10, 20, 30]';
  final liste = jsonDecode(s) as List;
  final ilk = liste[0];
  print(ilk);
}

Açıklama: Listede ilk elemanın index'i 0'dır; liste[0] 10 değerini verir.

3 JSON dizisi parçaları

Kavram Anlamı
List<dynamic> JSON dizisinin Dart karşılığı
liste[0] İlk elemana erişim
cast<String>() Listeyi String listesine çevirir
liste.length Eleman sayısını verir

Orta seviye bölümündeki tüm dersler