Сериализация возврата JSON модуля внешнего узла в класс Kotlin в KotlinJS - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь написать программу на 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 автоматически или мне нужно сериализовать их вручную?

1 Ответ

0 голосов
/ 28 мая 2018

В настоящее время нет способа автоматически десериализовать внешний вызов.Вы можете использовать ваш 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

...