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
}