解码json dart flutter

问题描述 投票:0回答:1

我需要在 Dart 中解码以下 JSON。当我执行解码时,遇到以下错误。我该如何解决这个问题?

错误:类型'(Map)=> RicettaNew'不是'f'的'(dynamic)=>动态'类型的子类型

JSON:

[{"name":"ricetta1","values":
[{"key":"item1","value":"3"},
{"key":"item2","value":"8"},{"key":"item3","value":"13"}
,{"key":"item4","value":"18"},{"key":"item5","value":"23"},{"key":"item6","value":"14"},....

颤振代码:

    var serverlink = "http://207.154.221.255:8600/api/recipes"+"/"+mc.model;
      var request = http.Request('GET', Uri.parse(serverlink));
      http.StreamedResponse response = await request.send();
      if (response.statusCode == 200) {
        var result = await response.stream.bytesToString();
        print("result: "+result);
        var list = jsonDecode(result.toString());
        lista=jsonDecode(result).map((Map m)=> RicettaNew.fromJson(m)).toList();

...
class RicettaNew {
  String name;
  List<Values> values = [];

  RicettaNew(this.name, this.values);

  RicettaNew.fromJson(Map json) {
    name = json["name"];

  }
}
json flutter dart decode
1个回答
0
投票

只需将基础 [] 大括号更改为 {}

因为你要传递的json不是正确的json格式

Json 格式始终以 { ... } 开头和结尾

{   
    "name":"ricetta1",
    "values": [
            {"key":"item1","value":"3"},
            {"key":"item2","value":"8"},
            {"key":"item3","value":"13"},
                         {"key":"item4","value":"18"},
                         {"key":"item5","value":"23"}

            ]
}

在解码之前,在 https://jsoneditoronline.org/ 上解析您的 json,以便您可以识别其正确或错误的格式

& 在 https://javiercbk.github.io/json_to_dart/

上生成模型类
© www.soinside.com 2019 - 2024. All rights reserved.