Json _TypeError(type';List<;dynamic>;';不是类型';Map<;String,dynamic>;的子类型;
需要您帮助解决颤振中的此错误…以及如何在其他屏幕上使用此回调实例 这是我的message.json数据模型 我的留言_model.dartJson _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(); 返回消息列表(消息); } }
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,
};
}