尝试解析JSON并将其显示在文本中而不是listview
时出现错误。
下面是我的JSON结构。
{
"status": "success",
"data": {
"id": 5,
"name": afri,
"class": 3c'
},
"message": "Success"
}
这是我的Future API异步。
Future<Map> getData() async {
var response = await http.get(
'url');
return json.decode(response.body) as Map<String, dynamic>;
}
这是我显示JSON的代码。
Container(
child: FutureBuilder<Map>(
future: getData(),
builder: (context, snapshot) {
Map<String, dynamic> data = jsonDecode(snapshot.data["data"]);
return Card(
child: Container(
padding: EdgeInsets.all(8),
color: Colors.red,
child: Text(
data['port_website'],
style: TextStyle(color: Colors.white, fontSize: 24),
),
),
);
},
),
),
当我尝试获取数据时,出现了这样的错误。
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'
我应该修复哪个代码?
答案 0 :(得分:1)
您可以尝试将数据的运行时间从_InternalLinkedHashMap
转换为精确列表。
您可以使用List.form
来实现。
final _data = List<dynamic>.from(
data.map<dynamic>(
(dynamic item) => item,
),
);
编辑1
为我工作。试试这个
new Map<String, dynamic>.from(snapshot.value);