无法在 Flutter 中提取 JSON 数据
Trouble extracting JSON data in Flutter
我正在尝试在 Flutter 中呈现元素列表,列表数据来自 REST API。但是,我无法理解如何正确解析这些数据。我希望解析后的数据如下所示:
['Chicken roll', 'Fresh salads', 'Wrape', 'Pizza', 'Fried Chicken', 'Veggie', 'Burgers']
这是 JSON 对象:
{
"status":true,
"error_message":"",
"success_message":"Task completed successfully.",
"data":[
{
"id":1064,
"name":"Chicken roll"
},
{
"id":1061,
"name":"Fresh salads"
},
{
"id":1059,
"name":"Wrape"
},
{
"id":1057,
"name":"Pizza"
},
{
"id":1055,
"name":"Fried chicken"
},
{
"id":1053,
"name":"Veggie"
},
{
"id":1051,
"name":"Burgers"
}
]
}
我该如何实现?我目前的代码如下:
var _categoryResponse;
var _categoryData;
var categoryData;
List<String> allCategories;
Future fetchCategories() async {
_categoryResponse = await http.get(_categories);
_categoryResponse = jsonDecode(_categoryResponse.body);
_categoryData = _categoryResponse['data'].toString();
categoryData = categoryDataFromJson(_categoryData);
}
List<String> listOfNames = [];
List<dynamic> data = json['data'] as List;
data.forEach((item) => listOfNames.add(item['name']));
print(listOfNames);
给出以下输出:
[Chicken roll, Fresh salads, Wrape, Pizza, Fried chicken, Veggie, Burgers]
我假设上面的变量 json
包含您解析的 JSON 对象(如示例中所示)。
不确定为什么要将 JSON 转换为字符串,因为使用动态映射更容易,至少在获取特定属性时,例如每个对象的 name
data
列表。
基本上,data
键映射到具有属性 id
和 name
的对象列表。因此,您可以 运行 获取列表中的 forEach()
并为其中的每个对象获取 name
。
我正在尝试在 Flutter 中呈现元素列表,列表数据来自 REST API。但是,我无法理解如何正确解析这些数据。我希望解析后的数据如下所示:
['Chicken roll', 'Fresh salads', 'Wrape', 'Pizza', 'Fried Chicken', 'Veggie', 'Burgers']
这是 JSON 对象:
{
"status":true,
"error_message":"",
"success_message":"Task completed successfully.",
"data":[
{
"id":1064,
"name":"Chicken roll"
},
{
"id":1061,
"name":"Fresh salads"
},
{
"id":1059,
"name":"Wrape"
},
{
"id":1057,
"name":"Pizza"
},
{
"id":1055,
"name":"Fried chicken"
},
{
"id":1053,
"name":"Veggie"
},
{
"id":1051,
"name":"Burgers"
}
]
}
我该如何实现?我目前的代码如下:
var _categoryResponse;
var _categoryData;
var categoryData;
List<String> allCategories;
Future fetchCategories() async {
_categoryResponse = await http.get(_categories);
_categoryResponse = jsonDecode(_categoryResponse.body);
_categoryData = _categoryResponse['data'].toString();
categoryData = categoryDataFromJson(_categoryData);
}
List<String> listOfNames = [];
List<dynamic> data = json['data'] as List;
data.forEach((item) => listOfNames.add(item['name']));
print(listOfNames);
给出以下输出:
[Chicken roll, Fresh salads, Wrape, Pizza, Fried chicken, Veggie, Burgers]
我假设上面的变量 json
包含您解析的 JSON 对象(如示例中所示)。
不确定为什么要将 JSON 转换为字符串,因为使用动态映射更容易,至少在获取特定属性时,例如每个对象的 name
data
列表。
基本上,data
键映射到具有属性 id
和 name
的对象列表。因此,您可以 运行 获取列表中的 forEach()
并为其中的每个对象获取 name
。