如何使用动态数组解析json';钥匙?

如何使用动态数组解析json';钥匙?,json,dart,flutter,Json,Dart,Flutter,我需要用动态数组键解析json,如下所示: [{key1:{ 标题:。。。。。, img:。。。。。, },键2:{ 标题:。。。。。, img:。。。。。, },}] 我知道如何像这样解析json: [ {标题:…,nbLike:…}, {标题:…,nbLike:…} ] 但是我没有找到任何关于用这样的动态键解析json的信息 我试过了,但没用 class Event { final String title; final int nbLike; Event({this.title

我需要用动态数组键解析json,如下所示:

[{key1:{ 标题:。。。。。, img:。。。。。, },键2:{ 标题:。。。。。, img:。。。。。, },}]

我知道如何像这样解析json:

[ {标题:…,nbLike:…}, {标题:…,nbLike:…} ]

但是我没有找到任何关于用这样的动态键解析json的信息

我试过了,但没用

class Event {
  final String title;
  final int nbLike;

 Event({this.title, this.nbLike});

  factory Event.fromJson(Map<String, dynamic> json) {
    return Event(
      title: json['title'] as String,
      nbLike: json['nbLike'] as int,
    );
  }
}




Future<List<Event>> fetchPosts(http.Client client) async {
  final response = '[{"2019-01-15":{"title":"Hey","nbLike":1}, "2019-01- 
 16":{"title":"Hey2","nbLike":2}}]';


  return compute(parsePosts, response);
}

List<Event> parsePosts(String responseBody) {
   List<Event> events = new List<Event>();
    List jsonParsed = json.decode(responseBody.toString());
    for (int i = 0; i < jsonParsed.length; i++) {
      print('jsonParsed1 ${jsonParsed.length}');
      print('jsonParsed ${jsonParsed[i]}');
      events.add(new Event.fromJson(jsonParsed[i]));
    }
    return events;
}
类事件{
最后的字符串标题;
最终int-nbLike;
事件({this.title,this.nbLike});
工厂事件.fromJson(映射json){
返回事件(
title:json['title']作为字符串,
nbLike:json['nbLike']作为int,
);
}
}
将来的fetchpost(http.Client-Client)异步{
最终回复='[{“2019-01-15”:{“标题”:“嘿”,“nbLike”:1}”,2019-01-
16:{“标题”:“Hey2”,“nbLike”:2}}];
返回计算(解析、响应);
}
列表解析帖子(字符串响应库){
列表事件=新列表();
List jsonParsed=json.decode(responseBody.toString());
for(int i=0;i
我从API接收带有密钥的json,我想将其转换为

[{title:…,nbLike:…},{title:…,nbLike:…}]

要创建“事件”列表并将其显示在卡片列表中,请尝试此操作

List _events = [];
List _dates = [];
jsonParsed.keys.forEach((String key){
   _dates.add(key);
});
for(int i=0; i<_dates.length; i++){
  jsonParsed[_date[i]].forEach((event){
   final Event event = Event(
      title: jsonParsed['title'],
      nbLike: jsonParsed['nbLike'],

    );
    _events.add(event);
  });
}
列出事件=[];
列出日期=[];
jsonParsed.keys.forEach((字符串键){
_日期。添加(键);
});

对于(int i=0;i如果有人需要它,这是完整的代码,谢谢KURRU HEM

    Map<String, dynamic> jsonParsed = {"2019-01-15":{"title":"Hey","nbLike":1}, "2019-01-16":{"title":"Hey2","nbLike":2}};
    print(jsonParsed);
 List<Event> _events = [];
List _dates = [];
jsonParsed.keys.forEach((String key){
   _dates.add(key);
});
  print(_dates);
for(int i=0; i<_dates.length; i++){
  print(jsonParsed[_dates[i]]['title']);
  print(jsonParsed[_dates[i]]['nbLike']);
   final Event event = Event(
      title: jsonParsed[_dates[i]]['title'],
      nbLike: jsonParsed[_dates[i]]['nbLike'],
);
    _events.add(event);
}
print('EVENTS --------------> $_events');


class Event {
  final String title;
  final int nbLike;

 Event({this.title, this.nbLike});

  factory Event.fromJson(Map<String, dynamic> json) {
    return Event(
      title: json['title'] as String,
      nbLike: json['nbLike'] as int,
    );
  }
}
Map jsonParsed={“2019-01-15”:{“title”:“嘿”,“nbLike”:1},“2019-01-16”:{“title”:“Hey2”,“nbLike”:2};
打印(jsonParsed);
列表_事件=[];
列出日期=[];
jsonParsed.keys.forEach((字符串键){
_日期。添加(键);
});
打印日期;

对于(int i=0;ii)jsonParsed.keys有此错误:[dart]没有为类“List”定义getter“keys”。[undefined_getter]将paredJson更改为类型MapI更改它,但foreach无法接受键作为字符串,因此我更改为dynamic。代码不显示错误,但Flatter给我此错误:类型“List”不是类型“Map”的子类型,很抱歉,我使用FlatterMap jsonParsed={}新建;试试这个。我使用了类似类型的json格式。我首先将键存储在列表中,然后使用存储在列表中的键提取细节