_TypeError(“String”类型不是“index”的“int”类型的子类型)

时间:2020-12-18 23:35:16

标签: flutter

我有如下 json

{
    "title": "DVG's Critique of the Congress High",
    "body": [],
    "field_body": {
        "und": [
            {
                "value": "<p>The swift emergence of the High Command culture, which spawned the aforementioned dwarfs at many key-points revealed perhaps its most ugly face in the form of perpetually warring factions both in the Government and Party. 
            }
        ]
    },
}

Json 有两个 body 字段。如果 body 为 null 或 0,我应该从 field_body 加载数据,但是当我在 getData 中声明它时,它给我错误-类型“String”不是“index”的“int”类型的子类型。任何人都可以帮我解决这个问题。

    var data = await http.get(url);
    var jsonData = json.decode(utf8.decode(data.bodyBytes));
    return DetailData(
        jsonData['title'],
        jsonData['body']['und'][0]['value'] == 0
            ? jsonData['field_body']['und'][0]['value']
            : jsonData['body']['und'][0]['value'],
        jsonData['field_image_wp']['und'][0]['filename'],
        jsonData['name']);
  }

enter image description here

2 个答案:

答案 0 :(得分:0)

我猜你的 DetailData 类的第二个位置参数的类型是 int,你试图给它一个 String 值

答案 1 :(得分:0)

Json key "body" 没有任何 "und" 属性。它只是一个空列表。要么您在第 385 行错误地将 field_body 写为 body,要么您忘记在 Json 中将 und 属性添加到 body