【问题标题】:Trouble extracting JSON data in Flutter在 Flutter 中提取 JSON 数据时遇到问题
【发布时间】:2021-08-08 17:09:24
【问题描述】:

我正在尝试在 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);
  }

【问题讨论】:

    标签: json flutter rest dart jsondecoder


    【解决方案1】:
    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 转换为 String,因为它更容易使用动态映射,至少在获取特定属性时,例如 data 列表中每个对象的 name

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

    【讨论】:

    • 哇!这完美地工作。非常感谢兄弟!
    猜你喜欢
    • 2021-10-31
    • 2023-01-20
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    相关资源
    最近更新 更多