android - 无法在 Flutter 上的地图上放置 json
问题描述
我正在尝试从 json 获取数据并保存到地图中以使用我的应用程序上的数据,但我无法使其工作。
这是json示例:
[
{
"Codigo_Produto": 2025,
"Qtde": 4,
"Descricao": "SERVIÇO DE ALINHAR EIXOS",
"Codigo": 3862,
"CodOS": 3862,
"Numero_da_OS": "3862"
},
{
"Codigo_Produto": 2423,
"Qtde": 4,
"Descricao": "SERVIÇO DE CAMBAGEM TRAÇÃO/TRUCK",
"Codigo": 3862,
"CodOS": 3862,
"Numero_da_OS": "3862"
}
]
这是我尝试访问数据的方式:
Map<dynamic, dynamic> map =
jsonDecode(response.data);
print(map);
我得到这个错误:
E/flutter (15734): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'String'
我也尝试过以不同的方式制作,但每次我得到这个错误。
我的代码有什么问题?是因为响应来自数组吗?接收这些数据并将其用于我的应用程序的最佳方式是什么?
调用 api 的按钮上的完整代码在这里:
onPressed: () async {
Response response;
Dio dio = new Dio();
String url =
'http://192.168.15.2:8090/api/getOs';
response = await dio.post(url, data: {
"numeroos": _numeroOsController.text
});
print(response.statusCode);
print(response.data);
Navigator.pop(context, true);
},
解决方案
使用 json.decode 您可以直接提取数据以映射
String responseBody = await rootBundle.loadString("assets/data.json");
var maplist = await json.decode(responseBody).cast<Map<String, dynamic>>();
推荐阅读
- python - 将我的字典变成熊猫数据框
- java - Spring boot Design Patterns and SSR vs REST api 有几个问题
- c# - 如何在c#中将用户输入的字符串更改为整数?
- azure-cosmosdb - 无法从 Robo 3T 连接到 Cosmos DB Mongo 3.6 兼容性
- javascript - 错误:ckeditor-duplicated-modules:某些 CKEditor 5 模块重复
- javascript - 移动后退按钮无法按预期工作
- android - Lottie的动画怎么改
- vue.js - 使用 vuejs 滚动事件时更改导航栏的背景颜色
- python-requests - 通过 Python 的 Telegram SendPoll:无法解析选项 JSON
- azure - 尝试使用 Azure/MSAL 通过 Azure 活动目录和 API 身份验证实现 SSO