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
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()