Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
json编码(对象列表)-要解码的字符串(对象列表)_Json_Flutter_Dart - Fatal编程技术网

json编码(对象列表)-要解码的字符串(对象列表)

json编码(对象列表)-要解码的字符串(对象列表),json,flutter,dart,Json,Flutter,Dart,我的单子太长了。所以,我编码并保存到数据库中。我想解码它。我该怎么做 编码方式 String shoppingCartToJson(List<ShoppingCartModel> data) => jsonEncode(data.map((i) => i.toMap()).toList()).toString(); 在您的ShoppingCartModel类中,您应该分别具有编码和解码、类型和来自动态的功能 因此,您的ShoppingCartModel类应该如下所示(假

我的单子太长了。所以,我编码并保存到数据库中。我想解码它。我该怎么做

编码方式

String shoppingCartToJson(List<ShoppingCartModel> data) => jsonEncode(data.map((i) => i.toMap()).toList()).toString();

在您的
ShoppingCartModel
类中,您应该分别具有
编码
解码
、类型和来自
动态
的功能

因此,您的
ShoppingCartModel
类应该如下所示(假设类中的参数):

解码:

List<dynamic> decodedData = json.decode(strData);

List<ShoppingCartModel> dataDecodedList = List<ShoppingCartModel>.from(
  dataDecoded.map((x) => ShoppingCartModel.fromJson(x)),
);
List decodedData=json.decode(strData);
List dataDecodedList=List.from(
dataDecoded.map((x)=>ShoppingCartModel.fromJson(x)),
);

您从一些外部远程api获得了json,对吗?为什么您要使用
jsonEncode
?是否要将其传递给其他一些客户端?此列表正在本地创建。我将列表存储在数据库中。(列表太长,这就是我对其进行编码的原因)。当我需要的时候,我需要解码它。先生,你明白了吗?对不起,我的英语不好,你不需要编码任何东西:如果你的列表有1000个项目,那么在数据库中存储1000行,而不是一个巨大的编码字符串我在firestore上存储数据。Firestore 1文档是指1MB,对吗?。所以我需要解码…顺便说一句,在我现有的用户文档中的这个字段,你们能告诉我如何解码到对象列表中吗?
class ShoppingCartModel {
  
  String itemId;
  String itemName;
  double quantity;
  
  ShoppingCartModel.fromJson(Map<String, dynamic> json) {
    if (json == null) return;
    itemId = json['item_id'];
    itemName = json['item_name'];
    quantity = json['quantity'];
  }
  
  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['item_id'] = this.itemId;
    data['item_name'] = this.itemName;
    data['quantity'] = this.quantity;
    return data;
  }
  
}
json.encode(data);
List<dynamic> decodedData = json.decode(strData);

List<ShoppingCartModel> dataDecodedList = List<ShoppingCartModel>.from(
  dataDecoded.map((x) => ShoppingCartModel.fromJson(x)),
);