Json Android 中的响应转换 Stuff
Json Response conversion Stuff in Android
下面是模型 class 我是为我的 json 回复创建的:
data class MyModelClass(
val one: String,
val two: String,
val three: String,
val four: Int,
val tempCurrentCharge: List<CurrentCharge>,
val tempCurrentDischarge: List<CurrentDischarge>
)
现在,在上面你可以看到我在我的 Json 响应中得到了 List<CurrentCharge>
和 List<CurrentDischarge>
的数组,如下所示:
"tempCurrentCharge": [
{
"temp": -600,
"cRating": 0
},
{
"temp": 0,
"cRating": 10
}
]
现在,我可以成功解析 json 响应并将其保存在我的本地数据库中(根据我的需要)。
现在我的本地数据库中有两个字段 table,一个用于 CurrentCharge
,另一个用于 CurrentDischarge
。
我必须将整个 json 字符串作为值保存在此。
目前它保存为 Object.toString()
相反,我想保存上面共享的整个 json 字符串。
问题是因为我已经为 json 解析创建了 pojo class,它会自动解析 tempCurrentCharge
和 tempCurrentDischarge
的数据。
但我想在其中存储 json 字符串的值。
所以,我所做的是:将两个变量的类型更改为 String
但随后它给了我类型转换错误:
"BEGIN_ARRAY... found String".
所以,有人请建议我如何在我的本地房间数据库字段中将 json 数组作为字符串 json 存储?
提前致谢。
让您的数据 class 保持原样,您收到的错误是合理的,因为在响应中您将数据 class 中的类型更改为String
因此出现以下错误
"BEGIN_ARRAY... found String".
根据您的需要,您可以在解析后简单地将其转换回 JSON 并保存。您将需要 Gson
库,我相信它已添加到您的项目中。如果没有请补充。
接下来您需要做的就是这个。我假设你有一个 BatteryConfigurationDetails
class
的对象
val batteryConfig = BatteryConfigurationDetails()
val tempCurrentChargeJson = Gson().toJson(batteryConfig.tempCurrentCharge)
val tempCurrentDischargeJson = Gson().toJson(batteryConfig.tempCurrentDischarge)
要将其转换回来,您可以使用以下函数
Gson().fromJson()
如果您还没有库,请添加以下内容
implementation 'com.google.code.gson:gson:2.8.7'
下面是模型 class 我是为我的 json 回复创建的:
data class MyModelClass(
val one: String,
val two: String,
val three: String,
val four: Int,
val tempCurrentCharge: List<CurrentCharge>,
val tempCurrentDischarge: List<CurrentDischarge>
)
现在,在上面你可以看到我在我的 Json 响应中得到了 List<CurrentCharge>
和 List<CurrentDischarge>
的数组,如下所示:
"tempCurrentCharge": [
{
"temp": -600,
"cRating": 0
},
{
"temp": 0,
"cRating": 10
}
]
现在,我可以成功解析 json 响应并将其保存在我的本地数据库中(根据我的需要)。
现在我的本地数据库中有两个字段 table,一个用于 CurrentCharge
,另一个用于 CurrentDischarge
。
我必须将整个 json 字符串作为值保存在此。
目前它保存为 Object.toString()
相反,我想保存上面共享的整个 json 字符串。
问题是因为我已经为 json 解析创建了 pojo class,它会自动解析 tempCurrentCharge
和 tempCurrentDischarge
的数据。
但我想在其中存储 json 字符串的值。
所以,我所做的是:将两个变量的类型更改为 String
但随后它给了我类型转换错误:
"BEGIN_ARRAY... found String".
所以,有人请建议我如何在我的本地房间数据库字段中将 json 数组作为字符串 json 存储?
提前致谢。
让您的数据 class 保持原样,您收到的错误是合理的,因为在响应中您将数据 class 中的类型更改为String
因此出现以下错误
"BEGIN_ARRAY... found String".
根据您的需要,您可以在解析后简单地将其转换回 JSON 并保存。您将需要 Gson
库,我相信它已添加到您的项目中。如果没有请补充。
接下来您需要做的就是这个。我假设你有一个 BatteryConfigurationDetails
class
val batteryConfig = BatteryConfigurationDetails()
val tempCurrentChargeJson = Gson().toJson(batteryConfig.tempCurrentCharge)
val tempCurrentDischargeJson = Gson().toJson(batteryConfig.tempCurrentDischarge)
要将其转换回来,您可以使用以下函数
Gson().fromJson()
如果您还没有库,请添加以下内容
implementation 'com.google.code.gson:gson:2.8.7'