Is it ok to save a JSON array in SharedPreferences?

前端 未结 9 2150
不知归路
不知归路 2020-11-28 08:29

I have a JSON Array that I need to save. I was thinking about serializing it, but would it be better to just save it as a string in SharedPreferences and then rebuild it whe

9条回答
  •  离开以前
    2020-11-28 09:11

    to save json array in shared preference you can use method in class as follow

    public class CompanyDetails {
    
    @SerializedName("id")
    private String companyId;
    
    public String getCompanyId() {
        return companyId;
    }
    }
    

    in shared preference class

    public static final String SHARED_PREF_NAME = "DOC";
    public static final String COMPANY_DETAILS_STRING = "COMPANY_DETAIL";
    public static final String USER_DETAILS_STRING = "USER_DETAIL";
    
    public static void saveCompanyDetailsSharedPref(Context mContext, CompanyDetails companyDetails){
        SharedPreferences mPrefs = mContext.getSharedPreferences(SHARED_PREF_NAME,Context.MODE_PRIVATE);
        SharedPreferences.Editor prefsEditor = mPrefs.edit();
        Gson gson = new Gson();
        String json = gson.toJson(companyDetails);
        prefsEditor.putString(COMPANY_DETAILS_STRING, json);
        prefsEditor.commit();
    }
    
    public static CompanyDetails getCompanyDetailsSharedPref(Context mContext){
        SharedPreferences mPrefs = mContext.getSharedPreferences(SHARED_PREF_NAME,Context.MODE_PRIVATE);
        SharedPreferences.Editor prefsEditor = mPrefs.edit();
        Gson gson = new Gson();
        String json = mPrefs.getString(COMPANY_DETAILS_STRING, "");
        if(json.equalsIgnoreCase("")){
            return null;
        }
        CompanyDetails obj = gson.fromJson(json, CompanyDetails.class);
        return obj;
    }
    

    to call value

     private CompanyDetails companyDetails;
     companyDetails = shared_class.getCompanyDetailsSharedPref(mContext);
     companyDetails.getCompanyId()
    

提交回复
热议问题