首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlinx.serialization中的空或空对象解析

Kotlinx.serialization中的空或空对象解析
EN

Stack Overflow用户
提问于 2021-12-02 15:07:46
回答 2查看 878关注 0票数 0

如何解析两种类型的响应:

代码语言:javascript
复制
{
"x" : "some_string"
}

代码语言:javascript
复制
{
"x" : { } 
}

转到如下所示的数据类中:

代码语言:javascript
复制
@Serializable
data class SomeClass {
  
   @SerialName("x")
   val x : String?
}
EN

回答 2

Stack Overflow用户

发布于 2021-12-08 14:06:47

这将只适用于您应用于编写自定义序列化程序字段的x字段。

String是一个原语(JsonPrimitive)。{}是一个对象(JsonObject)。在这里,您似乎正在将null编码为一个空的JsonObject,并且在设置值时,您将其编码为一个JsonPrimitive

如果这是一个严格的要求,您需要编写一个自定义序列化程序,将一个空对象转换为null,这应该相当简单。您可能还希望序列化失败,以防该对象包含任何键。

但是,惯用的方法是将其编码为null,在这种情况下,默认的kotlinx.serialization序列化程序将工作;它处理可空类型。

票数 1
EN

Stack Overflow用户

发布于 2021-12-05 19:29:31

我想你可以做这样的事:

代码语言:javascript
复制
@Serializable
data class Foo {
   @SerialName("bar")
   val bar: String? = null
}

但我可能错了..。

来源:GitHub问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70201859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档