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

如何在Flutter中访问本地嵌套JSON数据及获取对应实现示例

本地离线JSON读取的Firebase相关说明
  • 读取随应用打包的固定离线JSON文件,完全不需要将其上传至Firebase Storage。这类本地资源直接配置为Flutter应用的assets资产即可离线读取,加载无网络依赖、速度更快,也不会占用Firebase的存储配额。
  • 仅当JSON内容需要不发版动态更新、文件体积过大不想占用安装包体积、需要多端共享同一份动态JSON时,才有必要将文件上传至Firebase Storage,通过网络拉取的方式读取。
指定嵌套结构JSON的Flutter读取实现

你提供的JSON片段存在语法缺失(缺少多层闭合括号),先给出修正后的合法结构参考:

[
  [
    {
      "nos": 0,
      "name": "nnnnnnnasdfnnn",
      "unique_id": "adfadfd",
      "reg_details": [
        {
          "registered_with": "adfasdfasdf"
        },
        {
          "type_of_ngo": "zzzzzzzz"
        },
        {
          "registration_no": "zzzzzxxx"
        }
      ]
    }
  ]
]

具体实现步骤

  • 项目目录下新建assets文件夹,将合法的JSON文件存入该目录
  • 在项目根目录的pubspec.yaml中配置资产路径:
flutter:
  assets:
    - assets/你的JSON文件名.json
  • 编写读取逻辑,通过全局资产加载器读取文件内容,经JSON解析后顺着嵌套层级逐层取值,示例代码如下:
import 'dart:convert';
import 'package:flutter/services.dart' show rootBundle;

Future<void> parseNestedJson() async {
  // 读取本地JSON文件的原始字符串
  final String rawJson = await rootBundle.loadString('assets/你的JSON文件名.json');
  // 解析为Dart可操作的嵌套列表结构
  final List<dynamic> outerArray = jsonDecode(rawJson);
  // 外层数组的第一个元素为第二层嵌套数组
  final List<dynamic> secondArray = outerArray[0];
  // 第二层数组的第一个元素为存储核心属性的Map对象
  final Map<String, dynamic> coreInfoMap = secondArray[0];

  // 读取顶层属性
  final int nos = coreInfoMap['nos'];
  final String ngoName = coreInfoMap['name'];
  final String uniqueId = coreInfoMap['unique_id'];

  // 读取嵌套的reg_details数组(注意:该数组每个元素为单独的单键Map)
  final List<dynamic> regDetailList = coreInfoMap['reg_details'];
  final String registeredWith = regDetailList[0]['registered_with'];
  final String ngoType = regDetailList[1]['type_of_ngo'];
  final String regNo = regDetailList[2]['registration_no'];

  // 验证读取结果
  print('机构名称:$ngoName,注册号:$regNo');
}

注意:该结构的reg_details并非传统的单Map多属性结构,每个注册属性单独作为数组的一个元素存在,取值时必须通过数组索引定位对应属性,不能直接使用coreInfoMap['reg_details']['registered_with']的方式取值,否则会触发类型不匹配报错。

内容的提问来源于stack exchange,提问作者Bill_The_Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 05:36:05