6 votes

Incohérence de type lors de la sérialisation de la classe de données

Je suis cet exemple pour sérialiser une classe de données. Lorsque je le fais, j'obtiens cette erreur de construction :

Type mismatch: inferred type is Data but SerializationStrategy<TypeVariable(T)> was expected

Voici mon code :

import kotlinx.serialization.json.Json
import kotlinx.serialization.Serializable

@Serializable
data class Data(val a: Int, val str: String = "str")

fun main() {
    println(Json.encodeToString(Data(42)))
}

Puisque j'utilise l'annotation @Serializable, ne devrais-je pas avoir le bon type de données ? Comment puis-je sérialiser la classe de données ?

11voto

IR42 Points 4910

La fonction qui ne requiert que le paramètre valeur est implémentée comme une fonction d'extension, vous devez donc ajouter import

import kotlinx.serialization.encodeToString

0voto

user2233706 Points 1214

J'utilisais le mauvais encodeToString() fonction. Il doit être kotlinx.serialization.encodeToString et non celui de kotlinx.serialization.json.Json

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X