我想将对象存储在共享首选项中,该共享首选项中包含一些字段,例如姓名,年龄,电话号码等。我不知道如何在颤动中将对象存储在共享首选项中。
Bho*_*han 20
SharedPreferences shared_User = await SharedPreferences.getInstance();
Map decode_options = jsonDecode(jsonString);
String user = jsonEncode(User.fromJson(decode_options));
shared_User.setString('user', user);
SharedPreferences shared_User = await SharedPreferences.getInstance();
Map userMap = jsonDecode(shared_User.getString('user'));
var user = User.fromJson(userMap);
class User {
final String name;
final String age;
User({this.name, this.age});
factory User.fromJson(Map<String, dynamic> parsedJson) {
return new User(
name: parsedJson['name'] ?? "",
age: parsedJson['age'] ?? "");
}
Map<String, dynamic> toJson() {
return {
"name": this.name,
"age": this.age
};
}
}
Run Code Online (Sandbox Code Playgroud)
将对象保存到共享首选项
SharedPreferences pref = await SharedPreferences.getInstance();
Map json = jsonDecode(jsonString);
String user = jsonEncode(UserModel.fromJson(json));
pref.setString('userData', user);
Run Code Online (Sandbox Code Playgroud)
从共享首选项中获取对象
SharedPreferences pref = await SharedPreferences.getInstance();
Map json = jsonDecode(pref.getString('userData'));
var user = UserModel.fromJson(json);
Run Code Online (Sandbox Code Playgroud)
您将需要导入以下提到的包
import 'package:shared_preferences/shared_preferences.dart';
import 'dart:convert';
Run Code Online (Sandbox Code Playgroud)
创建模型的最简单方法 按照这个答案-> /sf/answers/4109604411/
在这里搜索了很多文章后,你是
对于保存数据,必须转换为 JSON
SharedPreferences prefs = await SharedPreferences.getInstance();
Map<String, dynamic> user =
{'Usrname':'tom','Password':'pass@123'};
bool result = await prefs.setString('user', jsonEncode(user));
Run Code Online (Sandbox Code Playgroud)
对于 Gettin 数据,必须从 JSON 解转换
String userPref = prefs.getString('user');
Map<String,dynamic> userMap = jsonDecode(userPref) as Map<String, dynamic>;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |