在Flutter中如何获取嵌套JSON属性的长度?
Flutter嵌套JSON属性长度获取方案
可以正常获取嵌套JSON中数组类型属性的长度,你无法找到length相关属性的核心原因是:json.decode()解析后所有值的默认类型为dynamic,编译器无法判定responseJson['obj1']['list1']是List类型,因此不会透出列表的长度属性。
正确实现代码
var response = await httpRequest.response; Map<String, dynamic> responseJson = json.decode(response.data); // 强制转换为List类型后调用length属性 int listLength = (responseJson['obj1']['list1'] as List).length; print(listLength); // 对应示例JSON输出结果为3
安全优化写法(避免异常)
如果不确定嵌套字段是否存在、是否为数组类型,建议增加类型校验避免运行崩溃:
dynamic targetList = responseJson['obj1']?['list1']; int safeLength = targetList is List ? targetList.length : 0; print(safeLength);
内容的提问来源于stack exchange,提问作者crayden
相关产品推荐
相关产品推荐

