[英]Decode complex json in flutter/dart
Could someone help me with decode this json and also access the variables?有人可以帮我解码这个 json 并访问变量吗?
{
"data" : [
"items": {
"388488": {
"id": 388488,
"name": "Galaxy Tab A7 10.4 2020",
"qty": 1,
},
"388489": {
"id": 388489,
"name": "Samsung Galaxy Tab A7 10.4 2020",
"qty": 1,
},
"388490": {
"id": 388490,
"name": " Apple iPad 10.2",
"qty": 1,
}
}
]
}
Note: the 388488
, 388489
and 388490
aren't stable and in other items can be different so i cant create a variable and name it something specific in model class.注意: 388488
和388489
388490
,其他项目可能不同,因此我无法创建变量并将其命名为 model class 中的特定名称。
here is my model class:这是我的 model class:
class OrderPageModel{
late final List<OrderPageModelData> orderpagemodeldata;
OrderPageModel({
required this.orderpagemodeldata
});
factory OrderPageModel.fromJson(Map<String , dynamic>Json ){
var list = Json["data"] as List ;
List<OrderPageModelData> dataList = list.map((e) => OrderPageModelData.fromJson(e)).toList();
return OrderPageModel(
order_id: Json['order_id'],
orderpagemodeldata: dataList
);
}
}
class OrderPageModelData{
late Items items;
OrderPageModelData({
required this.items
});
factory OrderPageModelData.fromJson(Map<String , dynamic> Json ){
return OrderPageModelData(
items: Items.fromJson(Json['items'])
);
}
}
class Items{
late final id;
late final name;
late final quantity;
Items({
this.id,
this.name,
this.quantity,
});
factory Items.fromJson(Map<String , dynamic> Json){
return Items(
id: Json["id"],
name: Json["name"],
quantity: Json["qty"]
);
}
}
and here is how i decode it:这是我解码它的方式:
if(response.statusCode == 200){
var decodedResponse = jsonDecode(response.body);
orderPageModel = OrderPageModel.fromJson(decodedResponse);
for(var i in orderPageModel.orderpagemodeldata){
print(i.items.name);
}
}
when I run my codes what I get is null
it mean the name of item isn't define and idk what is wrong with me codes.当我运行我的代码时,我得到的是null
,这意味着项目的名称没有定义,我知道我的代码有什么问题。 Also when I run print(i.items)
it will return Instance of Items .此外,当我运行print(i.items)
时,它会返回Instance of Items 。 Could anyone help me how to fix this?谁能帮我解决这个问题?
Your Json['items']
is a JSON object. You cannot directly map it to Items
(whose name counterintuitively implies it represents multiple items, which is not the case ), but to Map<String, dynamic>
.您的Json['items']
是一个 JSON object。您不能将它直接 map 到Items
(其名称违反直觉暗示它代表多个项目,但事实并非如此),而是到Map<String, dynamic>
。 From there, you can iterate through it (using the entries
property), and pass each value to Items.fromJson
.从那里,您可以遍历它(使用entries
属性),并将每个值传递给Items.fromJson
。
Also, your JSON is invalid, as it is.此外,您的 JSON 是无效的,因为它是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.