在flatter中提取JSON数据时遇到问题

在flatter中提取JSON数据时遇到问题,json,flutter,rest,dart,jsondecoder,Json,Flutter,Rest,Dart,Jsondecoder,我试图在Flutter中呈现元素列表,列表数据来自restapi。但是,我在理解如何正确解析这些数据方面遇到了困难。我希望解析的数据如下所示: ['Chicken roll', 'Fresh salads', 'Wrape', 'Pizza', 'Fried Chicken', 'Veggie', 'Burgers'] 这是JSON对象: { "status":true, "error_message":"",

我试图在Flutter中呈现元素列表,列表数据来自restapi。但是,我在理解如何正确解析这些数据方面遇到了困难。我希望解析的数据如下所示:

['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);
  }
var\u类别响应;
分类数据变量;
分类群变种;
列出所有类别;
Future fetchCategories()异步{
_categoryResponse=wait http.get(_categories);
_categoryResponse=jsonDecode(_categoryResponse.body);
_categoryData=_categoryResponse['data'].toString();
categoryData=categoryDataFromJson(_categoryData);
}
我假设上面的变量
json
包含已解析的json对象(如示例所示)

不知道为什么要将JSON转换为字符串,因为使用动态映射要容易得多,至少在获取
数据
列表中每个对象的
名称
等特定属性时是如此


基本上,
data
键映射到具有属性
id
name
的对象列表。因此,您可以在获得的列表上运行
forEach()
,并获取其中每个对象的
名称。

Wow!这很好用。谢谢你,兄弟!
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]