如何仅更改存储在共享首选项中的 Json 对象中的一个值

How to change only one value in the Gson object Stored in the Shared Preferrence

这是JSON

我正在使用此功能

将此 JSON 保存在 shared preference
public static void persistUser(Context context, User user) {
    mUser = user;
    SharedPreferences.Editor pref = 
    context.getSharedPreferences(USER_SHAREDS, 
    Context.MODE_PRIVATE).edit();
    pref.putString(USER_DATA, new Gson().toJson(user, User.class));
    pref.apply();
 }

现在我想更改 user_data 中的值 -> 用户封面图像而不更改所有其他数据 只需要改变任何一个值而不改变其他东西

帮我用简单的方法解决这个问题??

简单地说,你可以通过调用函数将用户取出并在更改后将其保存回来。

//Get user
User user = getPersistUser(context);

//Change
user.setCoverImage(true)

//Save
persistUser(context, user)

获取用户函数如

public static CoreUser getCoreUserInfo(Context context) {
     Gson gson = new Gson();
     String json = CacheHelper.read(context, CoreUser.OBJECT_NAME, "");
     return gson.fromJson(json, CoreUser.class);
}