【问题标题】:How to Adding New Data into JSON Dart?如何在 JSON Dart 中添加新数据?
【发布时间】:2020-10-15 03:52:15
【问题描述】:
  • 我有一个 JSON 有一些数据作为数组,我想添加 JSON 的新数据

这是我的 JSON 结构

```[
{
"id":"JKT020",
"origin_time":"2020-06-30 12:00",
"location":"Jakarta, ID"
}
]```

我想添加新数据,这样就可以了

 ```[
{
"id":"JKT020",
"origin_time":"2020-06-30 12:00",
"location":"Jakarta, ID",
"flag":1
}
]```

有可能吗?如果是,谁能告诉我该怎么做?提前致谢。

这就是我到目前为止一直在做的事情..

List data = json.decode(response.body);
      for (int i = 0; i < data.length; i++) {
        data.add(data[i]["flag"]=1);
        print("object : " + data[i].toString());
      }
      });

按我想要的方式打印,但在添加行返回错误

错误说 NoSuchMethodError: Class 'String' has no instance method '[]='

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    首先,你必须解码 JSON

    var data=json.decode("Your JSON")

    现在它可以作为列表和地图使用,因此您可以添加类似的字段

    data[key]=value;

    之后,您必须使用json.encode对其进行编码

    var data1=json.encode(data); `

    【讨论】:

      【解决方案2】:

      最好将 JSON 格式化并映射到模型。这不仅有助于进行空检查,还可以提高代码的可读性。

      你可以使用一个简单的模型,比如

      class myModel {
        String id;
        String originTime;
        String location;
        int flag;
      
        myModel({this.id, this.originTime, this.location, this.flag});
      
        myModel.fromJson(Map<String, dynamic> json) {
          id = json['id'];
          originTime = json['origin_time'];
          location = json['location'];
          flag = json['flag'];
        }
      
        Map<String, dynamic> toJson() {
          final Map<String, dynamic> data = new Map<String, dynamic>();
          data['id'] = this.id;
          data['origin_time'] = this.originTime;
          data['location'] = this.location;
          data['flag'] = this.flag;
          return data;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-04
        • 2019-05-23
        • 2022-01-21
        • 2021-08-20
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 2014-06-21
        相关资源
        最近更新 更多