【发布时间】:2021-05-06 02:51:17
【问题描述】:
我刚刚在我的原生 android 应用程序中从 volley requests 转移到 ktor。 现在我遇到了问题,字符串响应无法转换为 JSONObject。
有一个像这样的简单类(我稍微缩短了一点):
data class LoginResult(
val success: Boolean,
val token : String,
val userId: UUID?,
val tokenExpirationTime: LocalDateTime?
)
{
companion object {
fun fromJson(json: String) : LoginResult{
val obj = JSONObject(json)
var userId: UUID? = UUID.fromString(obj.getString("userId"))
var expirationTime: LocalDateTime.parse(obj.getString("expiration"), DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss"))
return LoginResult(
obj.getBoolean("success"),
obj.getString("token"),
userId,
expirationTime
)
}
}
}
我的请求是这样的:
val client = HttpClient(CIO)
val response = client.post<String> {
url(Url.RefreshLogin)
addDefaultHeaders(this)
}
val loginResult = LoginResult.fromJson(response)
运行该代码时,我遇到了这个异常:
org.json.JSONException: 值 {\"success\":true,\"token\":\"myToken\",\"userId\":\"2e181dac-416d-4668-b647-762e6596962a\" ,\"expiration\":\"2022.02.01 22:15:12\"} 类型的 java.lang.String 无法转换为 JSONObject
后端没有变化,之前截击请求运行良好。
有什么建议吗?
【问题讨论】: