Json _TypeError(type';List<;dynamic>;';不是类型';Map<;String,dynamic>;的子类型;

Json _TypeError(type';List<;dynamic>;';不是类型';Map<;String,dynamic>;的子类型;,json,flutter,dart,nsjsonserialization,Json,Flutter,Dart,Nsjsonserialization,需要您帮助解决颤振中的此错误…以及如何在其他屏幕上使用此回调实例 这是我的message.json数据模型 我的留言_model.dart class消息列表{ 最后名单信息; MessagesList(this.messages); factory MessagesList.fromJson(列表parsedJson){ 列表消息=列表(); messages=parsedJson.map((e)=>Message.fromJson(e)).toList(); 返回消息列表(消息); } }

需要您帮助解决颤振中的此错误…以及如何在其他屏幕上使用此回调实例

这是我的message.json数据模型

我的留言_model.dart

class消息列表{
最后名单信息;
MessagesList(this.messages);
factory MessagesList.fromJson(列表parsedJson){
列表消息=列表();
messages=parsedJson.map((e)=>Message.fromJson(e)).toList();
返回消息列表(消息);
}
}
类消息{
最后的字符串标题;
最终管柱体;
消息(this.title,this.body);
工厂消息.fromJson(映射json){
回信(
json['title'].toString(),
json['body'].toString(),
);
}
}
这是我的留言

_loadMessage函数(第3行-fromJson方法)中的TypeError(类型“List”不是类型“Map”的子类型)。为什么

Future\u loadMessageAsset()异步{
返回wait wait rootBundle.loadString(“./data/message.json”);
}
Future loadMessage()异步{
字符串jsonMessage=await_loadMessageAsset();
最终jsonResponse=jsonDecode(jsonMessage);
Message Message=Message.fromJson(jsonResponse);
打印(“消息--”+消息标题);
}

messagejson返回的是JSON数组而不是JSON对象,因此它不是List-not-Map

 Future loadMessage() async {
   String jsonMessage = await _loadMessageAsset();
  Iterable jsonResponse = json.decode(jsonMessage);
   List<Message > Message = List<Message >.from(jsonResponse ).map((Map model)=> 
   Message .fromJson(model)).toList();
  print("Message -- " + message[0].title);

}
Future loadMessage()异步{
字符串jsonMessage=await_loadMessageAsset();
Iterable jsonResponse=json.decode(jsonMessage);
List Message=List.from(jsonResponse.map)(映射模型)=>
Message.fromJson(model)).toList();
打印(“消息--”+消息[0]。标题);
}

在模型中旋转列表的方法是错误的。你能纠正它吗。如果你仔细看,你会明白的

  MessagesList  MessagesList FromJson(String str) => MessagesList 
  .fromJson(json.decode(str));

  String MessagesList ToJson(MessagesList  data) => json.encode(data.toJson());

 class MessagesList  {

  List<Message> flyForData;


   MessagesList ({

     this.messages,

      });
      ////////////this wrong
  factory MessagesList .fromJson(Map<String, dynamic> json) => MessagesList (
  
       messages: List<Message>.from(
          json["messages"].map((x) => Message.fromJson(x))),
    
       ); ////////////this wrong

   Map<String, dynamic> toJson() => {
 
       "messages": List<dynamic>.from(messages.map((x) => x.toJson())),
  
     };
  }

 class Message {
   final String title;
   final String body;
  Message({
   this.title, this.body
   });

  factory Message.fromJson(Map<String, dynamic> json) => Message(
       json['title'].toString(),
     json['body'].toString(),
     );

    Map<String, dynamic> toJson() => {
       "title": title,
       "body": body,
     };
  }
MessagesList MessagesList FromJson(字符串str)=>MessagesList
.fromJson(json.decode(str));
字符串messageslisttojson(messageslistdata)=>json.encode(data.ToJson());
类消息列表{
列出弗利福达;
消息列表({
这是一条信息,
});
////////////这是错误的
factory MessagesList.fromJson(映射json)=>MessagesList(
消息:List.from(
json[“messages”].map((x)=>Message.fromJson(x)),
)这是错误的
映射到JSON()=>{
“messages”:List.from(messages.map((x)=>x.toJson()),
};
}
类消息{
最后的字符串标题;
最终管柱体;
信息({
这个头衔,这个身体
});
工厂消息.fromJson(映射json)=>消息(
json['title'].toString(),
json['body'].toString(),
);
映射到JSON()=>{
“头衔”:头衔,
“身体”:身体,
};
}

您是从哪里得到此错误的,在哪一行?您正试图从该映射中获取列表?映射只有字符串和动态类型对象,没有列表类型。错误被抛出到第三行-“Message.fromJson(jsonResponse)”尝试了您的建议,但类型错误占上风!!
Future<String> _loadMessageAsset() async {
  return await rootBundle.loadString("./data/message.json");
}

Future loadMessage() async {
  String jsonMessage = await _loadMessageAsset();
  final jsonResponse = jsonDecode(jsonMessage);
  Message message = Message.fromJson(jsonResponse);

  print("Message -- " + message.title);

}
 Future loadMessage() async {
   String jsonMessage = await _loadMessageAsset();
  Iterable jsonResponse = json.decode(jsonMessage);
   List<Message > Message = List<Message >.from(jsonResponse ).map((Map model)=> 
   Message .fromJson(model)).toList();
  print("Message -- " + message[0].title);

}
  MessagesList  MessagesList FromJson(String str) => MessagesList 
  .fromJson(json.decode(str));

  String MessagesList ToJson(MessagesList  data) => json.encode(data.toJson());

 class MessagesList  {

  List<Message> flyForData;


   MessagesList ({

     this.messages,

      });
      ////////////this wrong
  factory MessagesList .fromJson(Map<String, dynamic> json) => MessagesList (
  
       messages: List<Message>.from(
          json["messages"].map((x) => Message.fromJson(x))),
    
       ); ////////////this wrong

   Map<String, dynamic> toJson() => {
 
       "messages": List<dynamic>.from(messages.map((x) => x.toJson())),
  
     };
  }

 class Message {
   final String title;
   final String body;
  Message({
   this.title, this.body
   });

  factory Message.fromJson(Map<String, dynamic> json) => Message(
       json['title'].toString(),
     json['body'].toString(),
     );

    Map<String, dynamic> toJson() => {
       "title": title,
       "body": body,
     };
  }