gpt4 book ai didi

json - 如何使用 Ktor 解析响应

转载 作者:行者123 更新时间:2023-12-02 13:25:12 26 4
gpt4 key购买 nike

我正在尝试在多平台项目中使用 Ktor 进行 Get 调用。这是代码:

private val client = HttpClient()

fun myCall(callback: (List<Film>) -> Unit) {

viewModelScope.launch {
val result:List<Film> = client.get {
url("https://data.sfgov.org/resource/wwmu-gmzc.json")
}
callback(result)
}
}
每次我提出这个请求时,应用程序都会关闭,而且我没有收到任何让我知道发生了什么的消息。如果不是将列表 Film 作为结果类型,而是将 String 放入,那么它可以工作并且我会收到一个电影列表,但是我想将其解析为我自己的对象,但我无法。
通话有问题吗?

最佳答案

对于 Ktor http 客户端 反序列化为您的自定义对象 ,您需要安装 JsonFeature在创建您的 http 客户端时,这需要 io.ktor:ktor-client-json添加了依赖项。

val client = HttpClient {
install(JsonFeature)
}
然后根据您要使用的序列化程序(Ktor 支持 Gson Jackson Kotlinx.Serialization ,您需要添加相应的序列化程序的依赖项)。例如,如果您想使用 Gson ,您需要为 io.ktor:ktor-client-gson 添加依赖项.然后您的 API 响应将反序列化为您的 List<Film>目的。
val result: List<Film> = client.get {
url("https://data.sfgov.org/resource/wwmu-gmzc.json")
}
更多关于 Ktor 的上述内容 documentation

关于json - 如何使用 Ktor 解析响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64537233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com