我正在开发Androidapp inKotlin其中我想保存一个'Location'对象到SQLite然后再恢复。我可以通过简单地调用'Location'对象上的'toString()'来将'Location'对象转换为'String',如下所示:
var loc:Location
var str:String
... Code to init loc ...
str = loc.toString
之后的字符串有一个值,如:
str = Location[gps 37.328528,-121.897877 hAcc=8 et=+1d15h4m55s443ms alt=-6.62762451171875 vel=0.36 bear=264.9 vAcc=17 sAcc=3 bAcc=97 {Bundle[mParcelledData.dataSize=96]}]
如何将结果String转换回Location对象
Update # 1这是我按照@DivijGupta的建议尝试使用Gson
constructor(i_productName: String, i_date:String, i_location:Location?)
{
var parcel:Parcel?=Parcel.obtain()
var locStr:String = ""
var longitude:Double
if(i_location!=null) {
logEntryAction = i_productName
logEntryDate = i_date
longitude = i_location.longitude
locStr = Gson().toJson(i_location) <----- Gson
}
else
{
longitude = 0.0
}
logEntryLongitude = longitude
您可以使用Gson库。
添加依赖项
implementation 'com.google.code.gson:gson:2.8.6'
将对象转换为字符串
val jsonString = Gson().toJson(loc)
现在从字符串
中获取对象val location = Gson().fromJson(jsonString, Location::class.java)