gpt4 book ai didi

flutter - 创建Json数组并使用SharedPreferences列出

转载 作者:行者123 更新时间:2023-12-03 04:58:11 40 4
gpt4 key购买 nike

我一直在使用shared_preferences创建和写入Json Files。我面临的问题是我不知道如何在shared_preferences中创建一个Json数组和一个列表。

我想保存并阅读Json List。

  read(String key) async {
final prefs = await SharedPreferences.getInstance();
return json.decode(prefs.getString(key));
}

save(String key, value) async {
final prefs = await SharedPreferences.getInstance();
prefs.setString(key, json.encode(value));
}

remove(String key) async {
final prefs = await SharedPreferences.getInstance();
prefs.remove(key);
}
} ```

最佳答案

DartPad的示例。

Save a list to SharedPreferences with setStringList:


  const String key = "users";

List<User> users = [User(name: "tester")];
List<String> jsonList = users.map((user) => user.toJson()).toList();
SharedPreferences prefs = await SharedPreferences.getInstance();

prefs.setStringList(key, jsonList);


Read a list from SharedPreferences with getStringList:


  jsonList = prefs.getStringList(key);

users = jsonList.map((json) => User.fromJson(json)).toList();

The user class with json convert: JSON and serialization


class User {
String name;
int age;

User({
this.name,
this.age,
});

factory User.fromJson(String str) => User.fromMap(json.decode(str));

String toJson() => json.encode(toMap());

factory User.fromMap(Map<String, dynamic> json) => User(
name: json["name"],
age: json["age"],
);

Map<String, dynamic> toMap() => {
"name": name,
"age": age,
};
}

关于flutter - 创建Json数组并使用SharedPreferences列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60192099/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com