簡體   English   中英

Flutter 錯誤(類型'列表<dynamic> ' 不是類型 'Map 的子類型<string, string> ')</string,></dynamic>

[英]Flutter error (type 'List<dynamic>' is not a subtype of type 'Map<String, String>')

當我嘗試解碼 json 時,它給了我錯誤。

我的 model class

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']
    );
  }
}

function 我正在使用它

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"
    },
]

您正在傳遞List<Map>您的參數是Map<String,dynamic>

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

做這個:

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

這樣,您將獲得使用您的響應list創建的States列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM