如何编写一个Dart模型类来解析这个JSON?
我正在开发一个dart/Flatter应用程序,需要从firebase数据库解析JSON。我已经在我的代码中多次成功地实现了这一点,但我无法解析以下JSON。有人能帮忙吗 下面是我正在处理的JSON响应:如何编写一个Dart模型类来解析这个JSON?,json,flutter,dart,firebase-realtime-database,Json,Flutter,Dart,Firebase Realtime Database,我正在开发一个dart/Flatter应用程序,需要从firebase数据库解析JSON。我已经在我的代码中多次成功地实现了这一点,但我无法解析以下JSON。有人能帮忙吗 下面是我正在处理的JSON响应: {favorites: {-MH1vwWPqXHSXkTe_MxC: [Green Bay Packers, Washington Football Team]}, firstname: Mark, email: mbilner@gmail.com, lastname: bilner, use
{favorites: {-MH1vwWPqXHSXkTe_MxC: [Green Bay Packers, Washington Football Team]}, firstname: Mark, email: mbilner@gmail.com, lastname: bilner, username: mbil}
这是我的模型课:
class userProf {
String email;
String firstname;
String lastname;
String username;
List<String> favorites;
userProf({this.email, this.firstname, this.lastname, this.username, this.favorites});
factory userProf.fromJson(Map<dynamic, dynamic> parsedJson) {
var favsFromJson = parsedJson['favorites'];
List<String> favsList = new List<String>.from(favsFromJson);
return userProf(
email: parsedJson['email'],
firstname: parsedJson['firstname'],
lastname: parsedJson['lastname'],
username: parsedJson['username'],
favorites: favsList
);
}
}
类userProf{
字符串电子邮件;
字符串名;
字符串lastname;
字符串用户名;
列出收藏夹;
userProf({this.email,this.firstname,this.lastname,this.username,this.favorites});
factory userProf.fromJson(Map parsedJson){
var favsFromJson=parsedJson['favorites'];
List favsList=new List.from(favsFromJson);
返回userProf(
电子邮件:parsedJson['email'],
firstname:parsedJson['firstname'],
lastname:parsedJson['lastname'],
用户名:parsedJson['username'],
收藏夹:favsList
);
}
}
当前代码显示以下错误:
“未处理的异常:类型'\u InternalLinkedHashMap'不是'Iterable'类型的子类型”
以下是数据库中的结构:
我认为List'from'方法需要一个Iterable值,但'favorites'值是'Map'
List<String> favsList = new List<String>.from(favsFromJson);
List favsList=new List.from(favsFromJson);
如果只使用贴图值而不使用键,则可以如下所示
List<String> favsList = [];
favsFromJson.values((value) => favList += value);
List favsList=[];
favsFromJson.values((value)=>favList+=value);
您可以将任何json数据转换为此web中的任何语言。请尝试:)这甚至不是有效的json,不是吗?@OldProgrammer他们显示的“json”输出可能是在他们解码后显示的,然后打印解码器返回的地图。请参见我的回答:-我对该类进行了一个小的编辑,但这很有效。谢谢