如何解析两种类型的响应:
{
"x" : "some_string"
}和
{
"x" : { }
}转到如下所示的数据类中:
@Serializable
data class SomeClass {
@SerialName("x")
val x : String?
}发布于 2021-12-08 14:06:47
这将只适用于您应用于编写自定义序列化程序字段的x字段。
String是一个原语(JsonPrimitive)。{}是一个对象(JsonObject)。在这里,您似乎正在将null编码为一个空的JsonObject,并且在设置值时,您将其编码为一个JsonPrimitive。
如果这是一个严格的要求,您需要编写一个自定义序列化程序,将一个空对象转换为null,这应该相当简单。您可能还希望序列化失败,以防该对象包含任何键。
但是,惯用的方法是将其编码为null,在这种情况下,默认的kotlinx.serialization序列化程序将工作;它处理可空类型。
发布于 2021-12-05 19:29:31
我想你可以做这样的事:
@Serializable
data class Foo {
@SerialName("bar")
val bar: String? = null
}但我可能错了..。
来源:GitHub问题
https://stackoverflow.com/questions/70201859
复制相似问题