Jestem całkiem nowy w trzepotaniu i teraz utknąłem w desterylizacji ciągu json w mojej klasie. Doceń swoją pomoc w tym zakresie.

To jest mój JSON

[
 {   
    "itemno": "4800888136473",
    "itemname": "AXE DEO AFRICA 150ML",  
  },
  {  
    "itemno": "4800888141125",
    "itemname": "AXE DEO BODYSPRAY DARK TMPTTN 150ML",   
  }
]

I moja klasa JSON

class ListItemList{
  ListItemList({   
    this.itemno,
    this.itemname,   
  });


  String itemno;
  String itemname;
  

  factory ListItemList.fromJson(Map<String, dynamic> json) =>
      ListItemList(       
        itemno: json["itemno"],
        itemname: json["itemname"],       
      );
}

Jak dzwonię

  List<ListItemList> result =
              ListItemList.fromJson(jsonDecode(response.body));
0
Lee Wei Chin 21 czerwiec 2021, 13:59

3 odpowiedzi

Użyj map, aby przejść przez JSON, który jest listą.

final List<ListItemList> result = (jsonDecode(response.body) as List)
    .map((e) => ListItemList.fromJson(e))
    .toList();
0
Tirth Patel 21 czerwiec 2021, 11:10

Jak wspomniałem, jest to lista. Zajmij się listą jak;

 List<ListItemList> result;
     var a = jsonDecode(response.body);
    
    
    // I can not compile this part you can check syntax
    a.forEach((element)
    at= ListItemList.fromJson(element);
    result.add(at);
    );
     
0
Muhtar 21 czerwiec 2021, 11:25

Przejdź do tego URL i wklej swój JSON. Przekonwertuje go zarówno na funkcję fromJson (konwersja obiektu json na obiekt dart), jak i toJson (konwersja obiektu dart na json).

Oto przykład fromJson i toJosn zgodnie z podanym przez Ciebie Json

class List {
  List<Items> items;

  List({this.items});

  List.fromJson(Map<String, dynamic> json) {
    if (json['items'] != null) {
      items = new List<Items>();
      json['items'].forEach((v) {
        items.add(new Items.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.items != null) {
      data['items'] = this.items.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class Items {
  String itemno;
  String itemname;

  Items({this.itemno, this.itemname});

  Items.fromJson(Map<String, dynamic> json) {
    itemno = json['itemno'];
    itemname = json['itemname'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['itemno'] = this.itemno;
    data['itemname'] = this.itemname;
    return data;
  }
}
0
NaKib 21 czerwiec 2021, 11:32