首页 > 解决方案 > 在颤振中解析数据问题

问题描述

我和我的代码似乎在这里崩溃了。我无法使用 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);

标签: jsonflutterparsingdart

解决方案


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});
  });
}

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


推荐阅读