Flutter & Shared Preferences:如何将(对象)列表保存到本地内存?
Flutter & Shared Preferences : How do I save a list (of object) to local memory?
我想使用 shared_preferences
包将对象列表保存到我的本地内存中。
假设这是我的 class:
class Person{
String name;
String age;
String gender;
}
如何使用 shared_preferences
做到这一点?
期待大家的来信。谢谢。
您可以用 shared_preferences
保存 List<String>
。
因此,我们需要将 Person
class 及其列表转换为 String
,方法是将它们编码为 JSON
:
class Person {
String name;
String age;
String gender;
Person({this.name, this.age, this.gender});
factory Person.fromJson(Map<String, dynamic> parsedJson) {
return new Person(
name: parsedJson['name'] ?? "",
age: parsedJson['age'] ?? "",
gender: parsedJson['gender'] ?? "");
}
Map<String, dynamic> toJson() {
return {
"name": this.name,
"age": this.age,
"gender": this.gender,
};
}
}
void _savePersons(List<Person> persons) async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
List<String> personsEncoded = persons.map((person) => jsonEncode(person.toJson())).toList();
await sharedPreferences.setStringList('accounts', accounts);
}
以同样的方式,我们可以将保存的 List<Person>
作为 JSON
对象并反序列化:
List<Person> _getPersons(List<Person> persons) async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
await sharedPreferences.setStringList('accounts', accounts);
return persons.map((person) => Person.fromJson(person)).toList();
}
我想使用 shared_preferences
包将对象列表保存到我的本地内存中。
假设这是我的 class:
class Person{
String name;
String age;
String gender;
}
如何使用 shared_preferences
做到这一点?
期待大家的来信。谢谢。
您可以用 shared_preferences
保存 List<String>
。
因此,我们需要将 Person
class 及其列表转换为 String
,方法是将它们编码为 JSON
:
class Person {
String name;
String age;
String gender;
Person({this.name, this.age, this.gender});
factory Person.fromJson(Map<String, dynamic> parsedJson) {
return new Person(
name: parsedJson['name'] ?? "",
age: parsedJson['age'] ?? "",
gender: parsedJson['gender'] ?? "");
}
Map<String, dynamic> toJson() {
return {
"name": this.name,
"age": this.age,
"gender": this.gender,
};
}
}
void _savePersons(List<Person> persons) async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
List<String> personsEncoded = persons.map((person) => jsonEncode(person.toJson())).toList();
await sharedPreferences.setStringList('accounts', accounts);
}
以同样的方式,我们可以将保存的 List<Person>
作为 JSON
对象并反序列化:
List<Person> _getPersons(List<Person> persons) async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
await sharedPreferences.setStringList('accounts', accounts);
return persons.map((person) => Person.fromJson(person)).toList();
}