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

标签 flutter dart

我一直在使用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/

相关文章:

dart - 在 Flutter 中设置环境变量

flutter - RaisedButton 与 ElevatedButton、FlatButton 与 TextButton 以及 OutlineButton 与 OutlinedButton

flutter - 从任务中删除应用程序后,为什么firebase auth无法识别登录用户?

flutter - 抖动中屏幕加载时的 HTTP 调用

api - 通过 Flutter App 和 JSON Web Token 在 Django 中验证用户

flutter 问题 |未设置用于签署配置发布的 keystore 文件

dart - 在 Dart 中使用 AES ECB 加密二进制数组

android - 如何在 flutter 中为底部导航栏图标提供渐变

javascript - 将 JavaScript Polymer 元素导入到 Dart

flutter - 如何将自拍动画添加到CustomPainter?