

我有一个带有三张地图的 Json 结构,一个是产品列表,然后是总计和税收。我必须在颤振中解析这个 json 结构。我在模型类上创建。现在我在类型转换中遇到错误。
如何解决这个问题?
JSON 结构:
{
"products" : [
{
"cart_id": "7",
},
{
"cart_id": "7",
}
],
"total": 100,
"tax": 100
}
Run Code Online (Sandbox Code Playgroud)
模型类:
class CartModel {
List<Product> produtcts;
double total;
CartModel({this.produtcts, this.total});
factory CartModel.fromJson(Map<String, dynamic> json) {
var list = json['products'] as List;
print(list.runtimeType);
List<Product> products = list.map((i) =>
Product.fromJson(i)).toList();
return CartModel(
produtcts: products, total: json['total'],);
}
}
class Product {
String cartId;
Product({this.cartId,});
factory Product.fromJson(Map<String, dynamic> json) {
return Product(
productId: json['cart_id'],
);
}
}
Run Code Online (Sandbox Code Playgroud)
不要将 products 数组转换为列表,而是尝试将其用作Iterable.
对我来说,以下代码有效(请注意,该json.decode(String)方法是从dart:convert包中导入的):
var data = '{"products":[{"cart_id": "7"},{ "cart_id": "7"}], "total": 100, "tax": 100}';
var decoded = json.decode(data);
var cartModel = CartModel.fromJson(decoded);
class CartModel {
List<Product> produtcts;
int total;
CartModel({this.produtcts, this.total});
factory CartModel.fromJson(Map<String, dynamic> json) {
Iterable list = json['products'];
print(list.runtimeType);
List<Product> products = list.map((i) =>
Product.fromJson(i)).toList();
return CartModel(
produtcts: products, total: json['total'],);
}
}
class Product {
String productId;
Product({this.productId,});
factory Product.fromJson(Map<String, dynamic> json) {
return Product(
productId: json['cart_id'],
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8521 次 |
| 最近记录: |