Olá, estou tentando recuperar o nestedJson para o dart. Trabalharei principalmente com uma chamada de API que tem dados semelhantes aninhados em JSON. Então, o exemplo abaixo é o que eu estava tentando ver se funciona. Então, meu principal problema é que não estou obtendo a saída esperada. Abaixo estão meus arquivos de código. Se isso parecer errado ou tedioso, por favor, me oriente sobre a maneira correta de fazer isso.
RESULTADO ESPERADO: | RESULTADO QUE OBTENHO: |
---|---|
dastagir | dastagir |
34 | 34 |
Xangai | Xangai |
[] | [] |
============ | ============ |
China | |
Bangladesh |
main.dart
void main() {
var myMap = {
"name": "dastagir",
"age": 34,
"city":"Shangai",
"address": [
{ // Map 1
"country": "china",
"city": "Shanghai"
},
{ // Map 2
"country": "Bangaldesh",
"city": "Dhaka"
},
]
};
var obj = Person.fromJson(myMap);
print(obj.name);
print(obj.age);
print(obj.city);
print(obj.address);
print("=======================================");
var myAddress = obj.address;
myAddress!.map((e){
print(e.country);
}).toList();
}
nested_json.dart
class Person{
String? name;
int? age;
String? city;
List<Address>? address;
Person({this.name, this.age, this.city, this.address});
Person.fromJson(Map<String, dynamic> json){
name = json['name'];
age = json['age'];
city = json['city'];
if(json['address']!=null){
address=<Address>[];
}
else{
(json['address'] as List).forEach((e){
address!.add(Address.fromJson(e));
});
}
}
}
// this is for inner Json List
class Address{
String? country;
String? city;
Address({this.country, this.city});
Address.fromJson(Map<String, dynamic> json){
country = json['country'];
city = json['city'];
}
}`