首页 > 解决方案 > 使用动态键解析来自 JSON 的地图列表

问题描述

我有这个 JSON:

[
    {
        "5e4442a72414233f286d655e": 5
    },
    {
        "5e599a7cbf66db8faeff3e2b": 3
    }
]

我想解析它,以便最终List<Map<String, int>>得到类似的东西,让我可以访问键和值,知道键不是固定字符串。

我尝试的方法是:

jsonDecode(jsonString) as List<Map<String, int>>

但我收到以下错误

type 'List<dynamic>' is not a subtype of type 'List<Map<String, int>>'

有没有办法实现我正在寻找的东西?

标签: jsondart

解决方案


jsonDecode将键入它返回的所有内容作为某种类型,dynamic无论是 a还是只是. 然而,仅仅因为它是这样输入的,并不意味着它不能转换成你想要的类型。List<dynamic>Map<String, dynamic>dynamic

var list = jsonDecode(jsonString) as List;
var castList = list.cast<Map>().map((m) => m.cast<String, int>()).toList();
// castList will be List<Map<String, int>>

推荐阅读