当前位置: 首页 > 知识库问答 >
问题:

颤振错误(类型列表不是类型映射的子类型)

卫乐童
2023-03-14

当我尝试解码json时,它会给我错误。

我的模范班

class States{
  String name;
  String abbreviation;
  States({this.name, this.abbreviation});

  factory States.fromJson(Map<String,String> json){
    return States(
      name: json['name'],
      abbreviation: json['abbreviation']
    );
  }
}

功能在我使用它的地方

Future<void> search(String text) async {
    String jsonString = await loadData();
    var data = jsonDecode(jsonString);

    var states = States.fromJson(data);//here it gives me error

    if (textEditingController.text == null ||
        textEditingController.text.isEmpty) {
      streamController.add(null);
      return;
    } else {
      print(text);
      streamController.add(states.name.startsWith(text.toLowerCase()));
    }
  }

json数据

[
    {
        "name": "Alabama",
        "abbreviation": "AL"
    },
    {
        "name": "Alaska",
        "abbreviation": "AK"
    },
]

共有1个答案

仉洲
2023-03-14

您正在传递列表

[
    {
        "name": "Alabama",
        "abbreviation": "AL"
    },
    {
        "name": "Alaska",
        "abbreviation": "AK"
    },
]

这样做:

 List<State> states = data.forEach((value) {
   States.fromJson(value);
  });

这样,您将获得一个使用响应的列表创建的状态列表。

 类似资料:
  • 我目前正在构建一个应用程序,通过医疗api读取数据,我试图解析JSON。 我为用户创建了一个模型类: 这是我试图阅读的JSON信息: 但是我得到的错误列表不是Map类型的子类型 如何修复此错误?

  • 我正面临着一个奇怪的颤动错误。我使用json序列化。 这是我的密码 我的web api发送的数据如下 这是数组的数组。 生成错误的代码是 它给出的错误 JSON数据这里是JSON数据格式的屏幕截图

  • 我有一个问题,因为2小时。我有这个错误,我看到了更多的主题,但我不能解决它。 消息:_TypeError(类型列表不是类型映射的子类型)颤动 我的模型: 我的主题屏幕: 我尝试了更多的教程和不同的主题,但我有相同的错误。。。 非常感谢。

  • 我的JSON有点像这样: 我的模型类: 这是我的api调用: 如何获取图像。小班?如果我需要澄清我的问题,请告诉我。我得到的错误列表不是Map类型的子类型

  • 因此,我创建了一个应用程序,通过api读取数据,并尝试解析JSON api 这是我的错误截图 我试着把它改成一个列表,但它仍然读取一个错误 这是我的密码大象。飞奔 如何纠正此错误?请帮忙

  • 我试图获得用户信息后,用户输入电子邮件和密码。我使用的api会返回我用户的额外信息,所以我尝试从中获取这些信息。 我试图解析这个json: 这些是我的模型: 这是我发送电子邮件、密码和获取用户数据的部分: 这是给我错误的部分 我打印了响应体,它给出了我想要的字符串,但是jsonDecode返回了一个列表,所以我不能使用它。我怎样才能解决这个问题?提前谢谢。