使用 gson 在内部将对象存储为 json 是常见的做法吗?
Is it common practice to store objects internally as json using gson?
我很难找到关于在内部或根本上存储对象的最佳方式的清晰解释或文档。
将对象转换为 json 来存储它们是常见的做法吗?有更好的方法吗?
我有一个相对简单的对象,其中包含一些字符串字段和其他包含原始类型的对象字段(如果需要的话)。
您可以将对象保存在数据库或共享首选项中
要在 DB 上兑现,您可以使用 Android Room (SQLite) 的教程,您可以查看此
linkroom tutorial
要根据共享首选项缓存对象,您可以使用以下代码
public void saveObhect(UserModel userModel) {
Gson gson = new Gson();
String json = gson.toJson(userModel);
prefsEditor.putString("USERMODEL", json);
prefsEditor.commit();
}
public UserModel getYourObjModel() {
Gson gson = new Gson();
String json = sharedPrefs.getString("USERMODEL", "");
Your obj = gson.fromJson(json, UserModel.class);
return obj;
}
JSON主要用于两个软件系统之间发送数据。它也可以用于存储,但并不是为此目的而设计的。这是因为您必须将其存储在无法轻松搜索或过滤数据的平面文件中。相反,您应该查看用于存储数据的数据库。
有多种方法和选项可以保存您的应用可以访问的对象 "internally"。
- Realm - 这是一个很好的入门者,有很好的文档并且有一个非常直接的方法来保存和取回对象。
这是一个很好的开始方式Tutorial for Realm
- Room - Android 的官方持久性库。这可能有点进步,但在 Whosebug 上也有大量社区,并且有来自 Google 和其他媒体的大量在线教程。
有关教程,请参阅此 Tutorial for Room
- Shared Preference - 还有其他方法可以做到这一点,例如 Shared Pref,我建议只存储少量数据,例如用户名、userId 和其他小尺寸对象。
干杯
我很难找到关于在内部或根本上存储对象的最佳方式的清晰解释或文档。
将对象转换为 json 来存储它们是常见的做法吗?有更好的方法吗?
我有一个相对简单的对象,其中包含一些字符串字段和其他包含原始类型的对象字段(如果需要的话)。
您可以将对象保存在数据库或共享首选项中
要在 DB 上兑现,您可以使用 Android Room (SQLite) 的教程,您可以查看此 linkroom tutorial
要根据共享首选项缓存对象,您可以使用以下代码
public void saveObhect(UserModel userModel) { Gson gson = new Gson(); String json = gson.toJson(userModel); prefsEditor.putString("USERMODEL", json); prefsEditor.commit(); } public UserModel getYourObjModel() { Gson gson = new Gson(); String json = sharedPrefs.getString("USERMODEL", ""); Your obj = gson.fromJson(json, UserModel.class); return obj; }
JSON主要用于两个软件系统之间发送数据。它也可以用于存储,但并不是为此目的而设计的。这是因为您必须将其存储在无法轻松搜索或过滤数据的平面文件中。相反,您应该查看用于存储数据的数据库。
有多种方法和选项可以保存您的应用可以访问的对象 "internally"。
- Realm - 这是一个很好的入门者,有很好的文档并且有一个非常直接的方法来保存和取回对象。
这是一个很好的开始方式Tutorial for Realm
- Room - Android 的官方持久性库。这可能有点进步,但在 Whosebug 上也有大量社区,并且有来自 Google 和其他媒体的大量在线教程。
有关教程,请参阅此 Tutorial for Room
- Shared Preference - 还有其他方法可以做到这一点,例如 Shared Pref,我建议只存储少量数据,例如用户名、userId 和其他小尺寸对象。
干杯