在Flutter 中将 map 的 Json 转换为 list

我有一个那样的JSON

 [  
    {
        "id": "2a5",
        "employeeNumber": "101",
        "firstName": "Sachin",
        "lastName": "Agrawal"
    },
    {
        "id": "1f7",
        "employeeNumber": "151",
        "firstName": "Karsten",
        "lastName": "Andersen"
    },
]

我试着这样解析JSON

List<Employee> employees = (jsonDecode(response.data) as List)
          .map((data) => Employee.fromJson(data))
          .toList();

它会导致以下错误

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

when I try to decode the JSON 它会导致以下错误

Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'String' 

解析这种类型的JSON的正确方法是什么?

推荐答案

你不需要解码你的response.data,它已经以列表的形式存在了.因此,与其这样,不如:

List<Employee> employees = (jsonDecode(response.data) as List)
          .map((data) => Employee.fromJson(data))
          .toList();

试试这个:

List<Employee> employees = (response.data as List)
          .map((data) => Employee.fromJson(data))
          .toList();

Json相关问答推荐

JOLT将对象名作为新属性添加到主体中

Moshi:序列化 List 时出现问题

将 GEOSwift.JSON 转换为 Swift 中的 struct

在 NX 工作区中跨多个应用共享 ngx-translate 翻译文件

遍历 JSON,检索父值

如何将 JSON 文本作为参数传递给 powershell?

无法使用 vue.js 访问 JSON 数组的项目

JOLT 在 struct 体中间添加一个 JSON 字段

JQ 中的样本标准偏差

使用 Jolt 变换将平面 json 转换为具有多个数组的嵌套 Json

TSQL FOR JSON 嵌套值

将 YAML 文件转换为 Python JSON 对象

Java的JSON字符串整洁/格式化程序

Jackson JSON序列化,通过级别定义避免递归

ASP.NET Core API 仅返回列表的第一个结果

有没有办法折叠 Postman 中的所有 json 字段

将 json 转换为 C# 数组?

如何在 Java 中将 YAML 转换为 JSON?

如何将 mysqli 结果转换为 JSON?

是否有一个 PHP 函数只在双引号而不是单引号中添加斜杠