在 KotlinJS 中将外部节点模块的 JSON return 序列化为 Kotlin class

Serializing external node module's JSON return into Kotlin class in KotlinJS

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

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

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

import kotlin.js.Promise

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

我试图用以下 class 表示 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 自动将 SomeAPIClient::getAPIResponse 返回的 JSON 序列化为 APIResponse 的实例,还是我需要手动序列化它们?

目前无法自动反序列化外部调用。您可以将 API 用作 String 并使用 kotlinx.serialization.json.JSON::parse 或将其用作 dynamic 然后使用动态到 Kotlin 转换器:https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/runtime_usage.md#dynamic-object-parser-js-only