Flutter 颤振获取json嵌套数据
这是我得到的json数据:Flutter 颤振获取json嵌套数据,flutter,dart,Flutter,Dart,这是我得到的json数据: { "data": [ { "id": "1", "name": "Kacchi Biriyani", "videoLink": "https://www.youtube.com/watch?v=K4TOrB7at0Y",
{
"data":
[
{
"id": "1",
"name": "Kacchi Biriyani",
"videoLink": "https://www.youtube.com/watch?v=K4TOrB7at0Y",
"author": "Alan Ford",
"category":"Biriyani",
"time": "15 min",
"steps": {
"step 1": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"step 2": "Suspendisse vel sapien elit"
},
},
{
"id": "2",
"name": "Mughal Biriyani",
"videoLink": "https://www.youtube.com/watch?v=aNVviTECNM0",
"author": "Ricky James",
"category":"Biriyani",
"time": "10 min",
"steps": {
"step 1": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"step 2": "Suspendisse vel sapien elit",
"step 3": "Proin luctus, quam non dapibus pretium"
},
},
]
}
正如您所看到的,这些步骤可以是可变长度的。对于某些配方,它可能是10个步骤,对于某些配方,它可能只是2个步骤
这就是我实现的模型<代码>配方.模型.省道:
class RecipeModel {
final String id;
final String name;
final String videoLink;
final String author;
final String category;
final String time;
final List<String> steps;
RecipeModel({
required this.id,
required this.name,
required this.videoLink,
required this.author,
required this.category,
required this.time,
required this.steps,
});
factory RecipeModel.fromJson(Map<String, dynamic> json) {
return RecipeModel(
id: json['id'],
name: json['name'],
videoLink: json['videoLink'],
author: json['author'],
category: json['category'],
time: json['time'],
steps: json['steps'],
);
}
}
这里我遗漏了什么?您对步骤的定义是
列表
,而不是传递映射
试试这个:
steps: u['steps'] != null ? List<String>.from(u['steps'].values) : [],
steps:u['steps']!=无效的列表。从(u['steps'].值):[],
RecipeCard(
itemName: recipes[index].name,
categoryName: recipes[index].category,
time: recipes[index].time,
videoLink: recipes[index].videoLink,
authorName: recipes[index].author,
//need to send the steps for selected recipe
);
steps: u['steps'] != null ? List<String>.from(u['steps'].values) : [],