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

Flutter中如何在ListView展示本地嵌套JSON文件?

解决Flutter本地嵌套JSON在ListView展示的问题

你的核心问题在于JSON结构的解析逻辑错误:本地JSON是数组包裹的对象集合,数组内每个元素才是包含jp键的对象,而你直接尝试从数组对象中取jp键,导致无法正确解析数据。以下是具体修正步骤:

1. 修正JSON解析逻辑

修改event_page.dart中的readJson方法,正确遍历数组并提取每个元素中的jp数据:

Future<void> readJson() async{
  final String response = await rootBundle.loadString("assets/array.json");
  // 明确指定解析结果为List类型
  final List<dynamic> informationData = json.decode(response);

  setState(() {
    // 遍历数组,每个元素取出jp对应的Map,再转为JP对象
    testJson = informationData
        .map((item) => JP.fromJson(item['jp'] as Map<String, dynamic>))
        .toList();
  });
}

2. 确保JSON文件格式正确

检查你的array.json文件,确保引号是标准双引号(避免转义错误),正确格式如下:

[
  {
    "jp": {
      "name": "jp",
      "password": "pawwordTest",
      "maxtun": 0,
      "email": "jp@france.fr",
      "date": {
        "build": "test1",
        "first_cnx": "test2"
      }
    }
  }
]

3. 验证资源配置

确保在pubspec.yaml中正确声明了assets资源,否则无法读取本地文件:

flutter:
  assets:
    - assets/array.json

完成以上修改后,点击"Load Informations"按钮,就能在ListView中正确展示本地JSON的嵌套数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:40:25