簡體   English   中英

Flutter json 未處理異常類型

[英]Flutter json Unhandled Exception type

我的 json 響應有問題
Json 它是:

{
"SData": {
    "total": "1",
    "STable": {
        "year": "2020",
        "S1Lists": [
            {
                "year": "2020",
                "turn": "6",
                "Ranking": [
                    {
                        "position": "1",
                        "Person": {
                            "personId": "paul",
                            "nationality": "none"
                        },
                    },
                   
                ]
            }
        ]
    }
}

Dart代碼

if(response.statusCode == 200){
  final result = response.data;
  Iterable list = result['SData'];
  print(list);
}else{
  throw Exception("Fail!");
}

我收到這個錯誤

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

例如,如果我想訪問 position 字段或 personId 字段,我該如何解決

發生這種情況是因為您的 json output 是Map<String, dynamic>而不是Iterable

if (response.statusCode == 200) {
    final result = response.data;
    final Map<String, dynamic> map = result['SData'];
    print(map );
  } else {
    throw Exception("Fail!");
  }

這將打印此 output

{
   "total":1,
   "STable":{
      "year":2020,
      "S1Lists":[
         {
            "year":2020,
            "turn":6,
            "Ranking":[
               {
                  "position":1,
                  "Person":{
                     "personId":"paul",
                     "nationality":"none"
                  }
               }
            ]
         }
      ]
   }
}

如果你想獲得排名。

  final Map<String, dynamic> data = result ['SData'];
  final Map<String, dynamic> table = data['STable']; // This is like result['SData']['STable']
  final Map<String, dynamic> list = table['S1Lists']; // result['SData']['STable']['S1Lists']
  final Map<String, dynamic> firstItem = list[0]; // result['SData']['STable']['S1Lists'][0]
  final Map<String, dynamic> ranking = list['Ranking']; // result['SData']['STable']['S1Lists'][0]['Ranking']

暫無
暫無

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

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