flutter 如何保存json数据
时间: 2023-09-07 17:12:39 浏览: 269
Flutter 中可以使用以下方法保存 JSON 数据:
1. 使用 shared_preferences 插件保存数据到本地。这个插件提供了一种简单的 key-value 存储方式,可以用来保存 JSON 数据。以下是保存和读取 JSON 数据的示例代码:
```dart
import 'package:shared_preferences/shared_preferences.dart';
import 'dart:convert';
// 保存 JSON 数据
saveData(Map<String, dynamic> data) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String jsonData = json.encode(data);
prefs.setString('jsonData', jsonData);
}
// 读取 JSON 数据
Future<Map<String, dynamic>> loadData() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String jsonData = prefs.getString('jsonData');
if (jsonData == null) return null;
return json.decode(jsonData);
}
```
2. 使用文件存储保存 JSON 数据。Flutter 提供了一个文件操作类,可以将数据保存到文件中。以下是保存和读取 JSON 数据的示例代码:
```dart
import 'dart:async';
import 'dart:convert';
import 'dart:io';
// 保存 JSON 数据
saveData(Map<String, dynamic> data) async {
final file = await _localFile;
String jsonData = json.encode(data);
file.writeAsString(jsonData);
}
// 读取 JSON 数据
Future<Map<String, dynamic>> loadData() async {
try {
final file = await _localFile;
String jsonData = await file.readAsString();
return json.decode(jsonData);
} catch (e) {
return null;
}
}
Future<File> get _localFile async {
final path = await getApplicationDocumentsDirectory();
return File('$path/data.json');
}
```
以上是两种常用的保存 JSON 数据的方法,你可以根据自己的需要选择其中一种。
阅读全文