fromMap从json响应中分配空值

时间:2018-05-18 00:15:31

标签: json dart flutter

我正在尝试使用fromJson分配JSON响应dart实体,但返回对象具有所有空值。

json如下所示:

{
   "doc":{
      "id":"6496772",
      "name":"Test Document",
      }
      "custom_keys":[
        {
        "key": "X1",
        "name":"X1"
        },
        {
        "key": "X2",
        "name":"X2"
        },
      ]    
}

我已创建测试实体,如下所示

class Test{
  final String id;
  final String name;

  const Feature({
    this.id,
    this.name,
  });

  Feature.fromMap(Map<String, dynamic>  map) :
    id= map['id'],
    name= map['name'];

}

API方法:

var request = await httpClient.getUrl(Uri.parse(url));
      var response = await request.close();

      if (response.statusCode == HttpStatus.OK) {
        var json = await response.transform(UTF8.decoder).join();
        print(json.toString());
        var data = JSON.decode(json);

        return new Test.fromMap(data['doc']); 

//从return语句中获取null对象 有错误消息。可能是什么问题?

1 个答案:

答案 0 :(得分:0)

null对象可能来自id= map['id'],,而你的json只返回&#34; key&#34;和&#34;名称&#34;。

您必须将每个json元素映射到属性。将构造函数更改为

Feature.fromMap(Map<String, dynamic>  map) :
    id= map['key'],
    name= map['name'];

可能会做到这一点。