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

开发中如何读取并编辑来自互联网的JSON文件

实现Flutter网络JSON获取与编辑操作步骤

1. 引入网络请求依赖

首先在项目根目录的pubspec.yaml文件中添加官方http依赖:

dependencies:
  flutter:
    sdk: flutter
  http: ^1.1.0 # 可替换为当前最新版本

添加后执行flutter pub get命令完成依赖安装。
注意:如果需要后续将编辑后的JSON临时存储到本地,可额外引入path_provider: ^2.1.0依赖,用于获取本地临时目录路径

2. 发起网络请求获取JSON

先导入需要的依赖包,再编写异步请求方法:

import 'dart:convert';
import 'package:http/http.dart' as http;

Future<Map<String, dynamic>> fetchNetworkJson(String jsonUrl) async {
  final response = await http.get(Uri.parse(jsonUrl));
  // 判断请求是否成功
  if (response.statusCode == 200) {
    return json.decode(response.body);
  }
  throw Exception('数据请求失败,状态码:${response.statusCode}');
}

调用方法获取JSON数据,和你之前读取本地JSON得到的结构完全一致:

var mydata = await fetchNetworkJson('替换为你的JSON文件网络地址');

*补充配置说明:

  • 安卓端若请求HTTP地址,需要在AndroidManifest.xml的application标签中添加android:usesCleartextTraffic="true"配置
  • iOS端若请求HTTP地址,需要在Info.plist中添加NSAppTransportSecurity相关配置,允许明文请求*

3. 编辑JSON数据

编辑逻辑和你之前处理本地JSON的逻辑完全一致,可直接对解析后的数据进行增删改操作:

// 修改已有字段
mydata['user_name'] = '新用户名';
// 新增字段
mydata['new_field'] = '新增的字段值';
// 删除字段
mydata.remove('deprecated_field');
// 若为列表结构可直接调用List相关方法操作
// mydata['data_list'].add({'item': '新列表项'});

4. 临时存储编辑后的JSON(可选)

如果需要将编辑后的JSON作为临时数据本地留存,可将其转为字符串存入临时目录:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

Future<void> saveTempJson(Map<String, dynamic> editedData) async {
  // 获取应用临时目录,该目录可被系统随时清理
  final tempDir = await getTemporaryDirectory();
  final tempFile = File('${tempDir.path}/temp_json.json');
  // 序列化JSON后写入文件
  await tempFile.writeAsString(json.encode(editedData));
}

后续需要读取临时存储的JSON时,直接读取该文件内容并调用json.decode解析即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:45:03