Iam通过在共享首选项中使用GSON将其转换为json来存储我的复杂对象。但在检索它时,无法获得预期的字符串。无法在共享首选项中存储字符串(巨大)
代码
这里holderListCustomizationMap是复杂的对象图。
设置共享偏好:
Gson gson = builder.create();
SharedPreferences sh=getSharedPreferences("MYFILE",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sh.edit();
String json = gson.toJson(holderListCustomizationMap);
editor.putString("Holder",json);
editor.apply();
虽然存储,JSON打印出是整个期望的字符串。
检索我的地图从共享偏好:
SharedPreferences sh = context.getSharedPreferences("MYFILE", Context.MODE_PRIVATE);
String listCutomizatoinJson = sh.getString("Holder","");
当我打印listCutomizatoinJson,得到这个{}只不是整个JSON。
如果数据太大,您可以尝试将数据保存到数据库。 – Amsheer
使用'OrmLite'可以轻松快速地保存。 'SharedPreferences'不是存储大对象的地方,而是小而关键的值。 – Shnkc