Store data as an object in shared preferences in flutter

You need to serialize it to JSON before saving and deserialize after reading

See https://flutter.io/docs/development/data-and-backend/json for details


You can Store an object in shared preferences as Below:

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
    };
  }
}

After searching a lot of articles here you are

For Saving data, must be converted to JSON

 SharedPreferences prefs = await SharedPreferences.getInstance();

   Map<String, dynamic> user = 
    {'Usrname':'tom','Password':'pass@123'};

bool result = await prefs.setString('user', jsonEncode(user));

For Gettin data, must Deconverted from JSON

String userPref = prefs.getString('user');
     
Map<String,dynamic> userMap = jsonDecode(userPref) as Map<String, dynamic>;

Tags:

Flutter