List<dynamic>
- Flutter kursu
- Orta seviye
- Ders 54/99
- 4 dk
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); // 3Elemanları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]); // yBu ş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
import 'dart:convert';
void main() {
const s = '["elma", "armut", "kiraz"]';
// JSON dizisini çöz ve ikinci elemanı yazdır
}Örnek çözüm
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ş
import 'dart:convert';
void main() {
const s = '[10, 20, 30]';
final liste = jsonDecode(s) as List;
final ilk = liste[____];
print(ilk);
}
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 |