如何在Flutter中通过创建Model解析嵌套数组结构的JSON?
Flutter 解析嵌套数组JSON的正确实现
首先定义对应的数据模型类Mymodel,注意处理可选字段hg:
class Mymodel { final String abc; final int? hg; Mymodel({required this.abc, this.hg}); factory Mymodel.fromJson(Map<String, dynamic> json) { return Mymodel( abc: json['abc'] as String, hg: json['hg'] as int?, ); } }
修正后的解析代码
你之前的代码存在两个问题:一是to list()拼写错误(应为toList()),二是没有将内层数组的每个Map对象转换为Mymodel实例。正确的解析逻辑如下:
// 假设你的原始JSON数据存储在jsonData变量中 List<List<Mymodel>> parsedInnerArray = (jsonData['Innerarray'] as List) .map((outerItem) => (outerItem as List) .map((innerItem) => Mymodel.fromJson(innerItem as Map<String, dynamic>)) .toList()) .toList();
代码说明
- 先将外层的
Innerarray转为List类型,确保类型安全 - 遍历外层数组的每个元素(即内层数组),再遍历内层数组的每个Map对象,通过
Mymodel.fromJson将其转为模型实例 - 最后将所有转换后的内层数组收集为一个二维
List<Mymodel>
使用示例
// 访问第一个内层数组的第一个对象的abc字段 print(parsedInnerArray[0][0].abc); // 输出: A // 访问第二个内层数组的第一个对象的hg字段 print(parsedInnerArray[1][0].hg); // 输出: 21
内容的提问来源于stack exchange,提问作者thunderflash android
相关产品推荐
相关产品推荐

