Kotlinx.serialization 中的 Gson.fromJson() 等于什么?
What is equals of Gson.fromJson() in Kotlinx.serialization?
我想从 Gson
移动到 kotlinx.serialization
,这等于 kotlinx.serialization
是什么?
private fun parseError(response: Response<*>?) {
val error = gsonConverter(response?.errorBody()?.charStream())
// Entire code
// ....
}
private fun gsonConverter(charStream: Reader?): ErrorResponse {
return Gson().fromJson(
charStream, ErrorResponse::class.java
)
}
不完全等价,但是你可以直接使用来自响应的字节流。您仍然需要处理 null response/body 的情况,因为 decodeFromInputStream 不采用可空类型:
private fun parseError(response: Response<*>?) {
val error = gsonConverter(response?.errorBody()?.byteStream())
// Entire code
// ....
}
private fun gsonConverter(stream: InputStream?): ErrorResponse {
return stream?.let {
Json.decodeFromStream<ErrorResponse>(it)
} ?: // A default ErrorResponse for example
}
我想从 Gson
移动到 kotlinx.serialization
,这等于 kotlinx.serialization
是什么?
private fun parseError(response: Response<*>?) {
val error = gsonConverter(response?.errorBody()?.charStream())
// Entire code
// ....
}
private fun gsonConverter(charStream: Reader?): ErrorResponse {
return Gson().fromJson(
charStream, ErrorResponse::class.java
)
}
不完全等价,但是你可以直接使用来自响应的字节流。您仍然需要处理 null response/body 的情况,因为 decodeFromInputStream 不采用可空类型:
private fun parseError(response: Response<*>?) {
val error = gsonConverter(response?.errorBody()?.byteStream())
// Entire code
// ....
}
private fun gsonConverter(stream: InputStream?): ErrorResponse {
return stream?.let {
Json.decodeFromStream<ErrorResponse>(it)
} ?: // A default ErrorResponse for example
}