开发中如何读取并编辑来自互联网的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
相关产品推荐
相关产品推荐

