Класс kotlinx-сериализации с пометкой @Serializable не имеет функции расширения .serializer()

У меня есть следующий класс данных

@Serializable data class Income(val id: String, val description: String, val amount: Int, val Time: Date, val userId: String) 

Теперь, когда 9X_kotlinx.serialization я пытаюсь использовать функцию .serializer(), она 9X_kotlinx.serialisation говорит, что .serializer() не определен 9X_kotlin для класса Income, поэтому мой проект не 9X_kotlin компилируется.

 val response = Json.stringify(Income.serializer(), Incomes) call.respond(HttpStatusCode.OK,response) 

Я дважды просмотрел документацию 9X_kotlinx.serialization в readme.md. Даже смотрел анонсирующий ролик от KotlinConf

Была 9X_kotlin ли у кого-нибудь такая же проблема. Что 9X_kotlinx.serialization я делаю не так ??

Изменить:

Я попытался просто 9X_kotlin скопировать и вставить образцы с readme.md 9X_kotlinx.serialization и столкнулся с той же проблемой.

import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable data class Data(val a: Int, val b: String = "42") fun main() { // Json also has .Default configuration which provides more reasonable settings, // but is subject to change in future versions val json = Json(JsonConfiguration.Stable) // serializing objects val jsonData = json.stringify(Data.serializer(), Data(42)) // serializing lists val jsonList = json.stringify(Data.serializer().list, listOf(Data(42))) println(jsonData) // {"a": 42, "b": "42"} println(jsonList) // [{"a": 42, "b": "42"}] // parsing data back val obj = json.parse(Data.serializer(), """{"a":42}""") // b is optional since it has default value println(obj) // Data(a=42, b="42") } 

Это тоже 9X_kotlinx.serialization не компилируется в моем коде. В настоящее 9X_kotlinx.serialisation время я использую Kotlin 1.3..61 и kotlinx-сериализация-время 9X_kotlin выполнения 0.14.0

21
0
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: Класс kotlinx-сериализации с пометкой @Serializable не имеет функции расширения .serializer()

В дополнение к зависимости kotlinx-serialization-runtime вам также необходимо 9X_kotlinx.serialization add the plugin

plugins { kotlin("multiplatform") // or kotlin("jvm") or any other kotlin plugin kotlin("plugin.serialization") version "1.4.10" } 

той же версии, что и сам Kotlin.

35
1

  • Чтобы избавиться от ошибки на ktor, мне нужно было добавить id 'org.jetbrains.kotlin.pl ...

Ответ #2

Ответ на вопрос: Класс kotlinx-сериализации с пометкой @Serializable не имеет функции расширения .serializer()

У меня была аналогичная проблема: мой XML-файл 9X_kotlin Navigation Drawer не распознал мой сериализуемый 9X_kotlin класс, для этого мне пришлось самому расширить 9X_kotlin java.io.Serializable, немного для kotlin, это 9X_kotlin было нормально:

@Serializable data class Income(val id: String, val description: String, val amount: Int, val Time: Date, val userId: String) : java.io.Serializable 

3
1

  • Это здорово, все остальное ...