如何获取外层Map嵌套列表中内部Map的id值?
问题解决方法
先看你的JSON结构,decodedData是个Map,不是List,你写的for循环完全没必要,逻辑还错了,这也是你拿不到enclosures里id的原因。
正确获取user_id的方式
直接通过键名访问Map就行,不用循环:
Map<String, dynamic> decodedData = jsonDecode(res.body); print(decodedData['user_id']); // 输出7
获取enclosures中的id值
enclosures是个包含单个Map元素的List,得先取出这个List,再访问里面的元素,最后拿id:
// 先拿到enclosures列表 List<dynamic> enclosures = decodedData['enclosures']; // 取列表里第一个元素(你的JSON里只有一个) Map<String, dynamic> enclosure = enclosures[0]; // 获取id值 int enclosureId = enclosure['id']; print(enclosureId); // 输出111
嫌麻烦也可以写成链式调用,更简洁:
int enclosureId = decodedData['enclosures'][0]['id']; print(enclosureId); // 输出111
额外提醒
如果enclosures列表可能为空,最好先做非空判断,避免报错崩溃:
if (decodedData['enclosures'] != null && decodedData['enclosures'].isNotEmpty) { int enclosureId = decodedData['enclosures'][0]['id']; print(enclosureId); } else { print('enclosures列表为空或不存在'); }
内容的提问来源于stack exchange,提问作者Anmol Singh
相关产品推荐
相关产品推荐

