1

我正在尝试在 KotlinJS 中编写一个程序,它将现有节点模块的 API 响应(通常作为 JSON 对象返回)转换为具有类似字段集的 Kotlin 类的实例。

外部节点模块在 Kotlin 中如下所示:

@file:JsModule("someapi-client")
package ext.jspackage.someAPIClient

import kotlin.js.Promise

external class SomeAPIClient(apiKey: String) {
    fun getAPIResponse(someParam: String): Promise<APIResponse>
}

我正在尝试使用以下类表示 JSON 对象的架构:

package ext.jspackage.someAPIClient

import kotlinx.serialization.Serializable

@Serializable
data class APIResponse(val data: List<DataInResponse>, val start: Int, val end: Int, val timezone: String)

有没有办法让 Kotlin 将返回的 JSON 自动序列SomeAPIClient::getAPIResponse化为一个实例,APIResponse还是我需要手动序列化它们?

4

1 回答 1

3

目前没有办法自动反序列化外部调用。您可以使用您的 APIString并使用kotlinx.serialization.json.JSON::parse或使用它dynamic,然后使用动态到 Kotlin 转换器:https ://github.com/Kotlin/kotlinx.serialization/blob/master/docs/runtime_usage.md#dynamic-object -parser-js-only

于 2018-05-28T15:01:49.053 回答