You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:45:12