我有如下 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']);
}
答案 0 :(得分:0)
我猜你的 DetailData 类的第二个位置参数的类型是 int,你试图给它一个 String 值
答案 1 :(得分:0)
Json key "body" 没有任何 "und" 属性。它只是一个空列表。要么您在第 385 行错误地将 field_body
写为 body
,要么您忘记在 Json 中将 und
属性添加到 body
。