You need to enable JavaScript to run this app. 如何在Flutter中解析JSON并获取第一个对象的alert_description属性值
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中解析JSON并获取第一个对象的alert_description属性值

解决方法

首先明确你返回的JSON层级结构如下:

根响应对象
└── data (第一层,Map类型)
    └── data (第二层,Map类型)
        └── data (第三层,数组类型,存储所有告警对象)
            └── 索引0的元素就是第一个告警对象
                └── alert_description 就是你要取的字段

你可以直接按以下方式访问,同时建议加上空安全判断避免数组为空或者字段不存在时报错:

var response = await http.get(Uri.parse(ApiUtil.GET_ALERT), headers: headers);
print("here================\n");
var data = json.decode(response.body);
// 打印你之前已经取到的第三层data数组
print(data['data']['data']['data']);

// 新增:获取第一个对象的alert_description字段
String? firstAlertDesc;
// 先判断数组是否存在且不为空
if (data['data']?['data']?['data'] != null && (data['data']['data']['data'] as List).isNotEmpty) {
  firstAlertDesc = data['data']['data']['data'][0]['alert_description'];
  // 拿到后可以直接使用,比如打印
  print("第一个告警描述:$firstAlertDesc");
}

// 注意:你的返回结构体里是code字段,不是status字段,原判断逻辑需要修正
if (data['code'] == 0) {
  showNotification(data['message'], flp);
} else {
  print("no message");
}

return Future.value(true);

另外要注意你原有代码里的状态判断有误:你接口返回的根节点字段是code,成功值为0,不是你写的status == 200,需要同步修改避免逻辑错误。

内容的提问来源于stack exchange,提问作者lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 05:15:03