【问题标题】:Issue parsing data in flutter在颤振中解析数据问题
【发布时间】:2020-10-14 14:40:52
【问题描述】:

我和我的代码似乎在这里崩溃了。我无法使用 jsonDecode 解析这个数据集,请帮忙。它应该相当简单,但它不会在 jsonDecode 之后工作

数据集

[{"data":[{"name":"Alba","visible":true},{"name":"Arad","visible":true}],"_id":"Counties"}]

失败代码

Definitions parseDefinition(String responseBody) {
final parsed = jsonDecode(responseBody).cast<Map<String, dynamic>>();
return  Definitions.fromJson(parsed);

【问题讨论】:

  • 使用它来自动生成你的解析代码:app.quicktype.io。在左边解析你的 json,在右边选择 dart
  • 试试这个工具,它告诉我试试这个,但它不起作用return json.decode(responseBody).map((x) =&gt; Definitions.fromJson(x));

标签: json flutter parsing dart


【解决方案1】:
import 'dart:convert';

class Definitions {
  Definitions({this.data, this.id});
  List<DefData> data;
  String id;
  
  static Definitions fromJson(Map<String,dynamic> json) => Definitions(
    data: List<DefData>
      .from(json['data']
      .map((dynamic d ) => DefData.fromJson(d),)
      .toList(),),
    id: json['_id'],
  );
}

class DefData {
  DefData({this.name,this.visible});
  final String name;
  final bool visible;
  
  static DefData fromJson(Map<String,dynamic> json) => DefData(
    name: json['name'],
    visible: json['visible']
  );
}

void main() {
  
 const String _json = '[{"data":[{"name":"Alba","visible":true},  {"name":"Arad","visible":true}],"_id":"Counties"}]';
  
  List<Definitions> _foos = List.from(jsonDecode(_json))
    .map((dynamic d ) => Definitions.fromJson(d),)
    .toList();
  
  _foos.forEach((Definitions f) {
    f.data.forEach((Baz b) {
      print(b.name);
      print(b.visible);
    });
    print({f.id});
  });
}

如果你有类似的数据集,你可以使用它,它对我有用:)

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 2021-10-27
    • 2020-05-19
    • 2020-11-22
    • 2019-01-17
    • 2021-08-23
    • 2020-03-01
    • 2021-09-25
    • 2021-02-25
    相关资源
    最近更新 更多