首页 > 解决方案 > 无法在 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);

                                },

标签: androidflutter

解决方案


使用 json.decode 您可以直接提取数据以映射

String responseBody = await rootBundle.loadString("assets/data.json");
var maplist = await json.decode(responseBody).cast<Map<String, dynamic>>();

推荐阅读