首页 > 解决方案 > 如何在颤振中解析json

问题描述

我正在尝试获取来自 Http 库的 JSON 数据。我只想向用户显示第一个对象的“alert_description”值。我怎样才能访问这个属性?

我的 API 响应:

{
    "code": 0,
    "message": " success",
    "data": {
        "data": {
            "current_page": 1,
            "data": [
                {
                    "id": 62,
                    "user_id": 53,
                    "boxIdentifiant": 1924589682265245,
                    "boxName": "Box Sfax",
                    "alert_date": "2021-05-30",
                    "alert_time": "09:40",
                    "alert_description": "Panne Pression",
                    "alert_level": "warning"
                },
                {
                    "id": 61,
                    "user_id": 53,
                    "boxIdentifiant": 1924589682265243,
                    "boxName": "Box Tunis",
                    "alert_date": "2021-05-30",
                    "alert_time": "09:40",
                    "alert_description": "Panne Pression Roux",
                    "alert_level": "info"
                },
                {
                    "id": 58,
                    "user_id": 53,
                    "boxIdentifiant": 1924589682265244,
                    "boxName": "Box Office",
                    "alert_date": "2021-05-30",
                    "alert_time": "09:40",
                    "alert_description": "Panne Pression Roux",
                    "alert_level": "warning"
                },

我的代码:

 var response =
        await http.get(Uri.parse(ApiUtil.GET_ALERT), headers: headers);
    print("here================");
    // print(response);
    var data = json.decode(response.body);
    print(data['data']['data']['data']);
    if (data['status'] == 200) {
      showNotification(data['message'], flp);
    } else {
      print("no message");
    }

    return Future.value(true);
  });
}

标签: flutterdart

解决方案


我不知道 Http 库是如何工作的,但是在 Dio 库中你不需要解码任何东西,它非常简单。看看这是否对您有帮助:

var response = await Dio().post(yourUrl, data: { param1: value1, param2: value2 });

for (var item in response.data['data']['data']['data'])
{
    print(item['alert_description']);
}

由于您正在使用该GET方法,请分别使用Dio().get()andqueryParameters:而不是Dio().post()and data:


推荐阅读