首页 > 解决方案 > 将 Json 转换为包含对象列表的对象时出错

问题描述

我从我已解码为 JSON 对象的 API 请求中得到响应。尝试将此 Json 对象转换为包含对象列表的类时,我遇到以下错误:

"Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'".

我理解错误背后的含义,但无法找到解决方案。Dart 中关于这个特殊事物的资源相当有限。

我试过fromJson几次重写我的方法,但一直遇到同样的错误。

下面是我的UserList类,我试图将 Json 对象转换为该类。

    class UserList {
      final List<UserObject> users;
      UserList({
        this.users,
      });

      addUser(UserObject user){
        users.add(user);
      }

      factory UserList.fromJson(List<dynamic> parsedJson) {
        List<UserObject> users = new List<UserObject>();
        users = parsedJson.map((i)=>UserObject.fromJson(i)).toList();

        return new UserList(
            users: users
        );
      }

      Map<String, dynamic> itemToJson() {
        return <String, dynamic>{
          'UserVal': this.users,
        };
      }

    }

这就是我调用 fromJson 方法的地方:

    UserList list = UserList.fromJson(userVal);

userVal等于以下内容:

{UserVal: [{UID: test, Email: test@gmail.com, Phone: 1110001111, Name: Test1}, {UID: test, Email: test@gmail.com, Phone: 1110001111, Name: Test2}, {UID: test, Email: test@gmail.com, Phone: 1110001111, Name: Test3}, {UID: test, Email: test, Phone: 1110001111, Name: test4}]}

我正在寻找的输出是有一个完整的对象,然后我的方法可以返回并使用它。但是,它会在此方法调用上中断。

标签: jsonflutterdartfromjson

解决方案


推荐阅读