如何使用flutter更新json数据

时间:2019-06-23 23:10:00

标签: json flutter

如何更新JSON值。我正在使用带有REST API的Flutter来更改数据,但是我正在努力刷新自己的JSON数据。对不起朋友,我对Flutter不太了解,所以请为我提供帮助,请在下面找到JSON'S Object:

{
id: 1,
clef: "Y8F5eEo0",
IndiceSensibilite: "0.04",
Objectif: "1.00"
}

我想使用textField更新IndiceSensibilite的值。 我在这里进一步澄清。 如果有人会帮助我,我将非常感激。

1 个答案:

答案 0 :(得分:1)

您可以将JSON转换为对象,进行修改并返回JSON:

import 'dart:convert'; // make sure you imported this library


String jsonValue = '{"id": 1, "clef": "Y8F5eEo0", "indiceSensibilite": "0.04", "objectif": "1.00" }'; // original JSON

使用Future将其转换为对象:

Future<ToObject> jsonToObject() async {
    var parse = json.decode(jsonValue);
    return ToObject.parseJson(parse);
}

和您的对象(在我的情况下为ToObject)将具有以下模型和方法:

class ToObject {
  int id;
  String clef;
  String indiceSensibilite;
  String objectif;

  ToObject({this.id, this.clef, this.indiceSensibilite, this.objectif});

  factory ToObject.parseJson(Map<String, dynamic> json) => ToObject(
      id: json['id'], clef: json['clef'], indiceSensibilite: json['indiceSensibilite'], objectif: json['objectif']);

  Map<String, dynamic> toJson() =>
      {'id': id, 'clef': clef, 'indiceSensibilite': indiceSensibilite, 'objectif': objectif};
}

我使用FutureBuilder来获取数据,修改值并返回JSON:

FutureBuilder<ToObject>(
     future: jsonToObject(),
     builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.done) {
              var object = snapshot.data;
              object.indiceSensibilite = "43.00";
              return Text(json.encode(object.toJson()));
          } else {
              return Text("Loading...");
          }
     },
)

您的最终结果是修改后的JSON,您可以根据需要使用:

Modified JSON