flutter - 如何在颤振中解析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);
});
}
解决方案
我不知道 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:
。
推荐阅读
- ubuntu - 无法登录到 ec2 实例,因为我将 ubuntu 的 chown 更改为另一个用户
- php - Cpanel 中的 Cron 作业 - 时区问题
- json - 如何将 db 结果行转换为嵌套的 json 格式
- react-native - 如何在本机反应中使用共享代码库制作多个应用程序变体?
- reactjs - 在 Create-React-App 测试套件中运行 axe-core 测试
- vbscript - 使用 WScript.shell 运行 sqlcmd - waitonreturn 不启动
- python - 如何使用 tensorflow 处理嵌套循环?
- python - Graphene-Python:从 Django 模型自动生成模式
- c# - System.Runtime.InteropServices.COMException:“已尝试多次添加相同的字段。” Outlook vsto addin c#中的错误
- python - Python 导入导致 [WinError 193] %1 不是有效的 Win32 应用程序,尽管导入在 `cmd` 中有效