Android SQLiteOpenHelper使用对象变量保存自定义对象
我正在使用SQLiteOpenHelper将数据保存到Android应用程序中的数据库中。我想将另一个自定义对象保存为变量的自定义对象 对象的示例:Android SQLiteOpenHelper使用对象变量保存自定义对象,android,sqlite,android-sqlite,sqliteopenhelper,Android,Sqlite,Android Sqlite,Sqliteopenhelper,我正在使用SQLiteOpenHelper将数据保存到Android应用程序中的数据库中。我想将另一个自定义对象保存为变量的自定义对象 对象的示例: public class Device implements Serializable { public String deviceId; public Location location; public Device() { } } public class Location implements Serial
public class Device implements Serializable {
public String deviceId;
public Location location;
public Device() {
}
}
public class Location implements Serializable {
public double lat;
public double lon;
public Location() {
}
}
我正试图将设备
保存到我的数据库中。但是当我从db加载对象时,位置
对象总是空
,即使两个对象都实现了可序列化
接口
我想让它尽可能简单,因为我只存储这个简单的对象 请尝试将对象存储为JSON。例如:“{deviceId:43,位置:{lat:43.43522,lon:34.5234}”。然后使用gson或Jackson。或者提供方法将对象转换为jsonString,反之亦然?或者您只需要可序列化?@MichaelSpitsin我可以将其存储为json,然后使用Gson将其还原回来。但我不确定这是否是最佳实践。是的,这是一种解决方案。可以存储2列。第一个是id,第二个是json。但若您将数据存储在json中,而不是直接存储在列中,那个么您将失去通过sql查询对对象进行分组、排序和e.t.c的可能性。所以你需要做出决定。当然,存储数据是JSON,比序列化更好,IMOH。我会考虑使用ORM,它们是为这个而构建的。