当前位置: 首页 > 知识库问答 >
问题:

静态编程语言序列化字段,可以是字符串或字符串数组

唐健
2023-03-14

我当前的项目使用Kotlin序列化来使用一系列远程RESTFul API。

API响应是Json,我无法修改它们。

其中一个API将“Person”作为字符串或字符串数组返回。

我如何让Kotlin序列化自动消耗任何一个值?

我使用这个版本的静态编程语言序列化

api 'org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.0'
api 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0'

共有1个答案

酆晔
2023-03-14

留档中有一个类似案例的示例。在这种情况下,它是User的列表,如果您想将其解析为单个Person,它将类似于

@Serializable
data class Person(
    @Serializable(with=StringListSerializer::class)
    val strings: List<String>)

object StringListSerializer :
    JsonTransformingSerializer<List<String>>(serializer<List<String>()) {
    // If response is not an array, then it is a single object that should be wrapped into the array
    override fun transformDeserialize(element: JsonElement): JsonElement =
        if (element !is JsonArray) JsonArray(listOf(element)) else element
}

(未测试)

 类似资料:
  • 我有课 其中field 如果使用ObjectMapper反序列化此对象 结果是这样的: 添加了转义(\),并且json字段有引号(")。如何正确摆脱这一点并制作单个JSON?像这样:

  • 主要内容:字符串结束标志(划重点),字符串长度用来存放字符的数组称为 字符数组,例如: 字符数组实际上是一系列字符的集合,也就是 字符串(String)。在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。 C语言规定,可以将字符串直接赋值给字符数组,例如: 数组第 0 个元素为 ,第 1 个元素为 ,第 2 个元素为 ,后面的元素以此类推。 为了方便,你也可以不指定数组长度,从而写作: 给字符数组赋

  • 问题内容: 我在解组一些我无法控制的Json时遇到麻烦。在一个字段中,有99%的时间是字符串,但偶尔是数组。 杰森如下: 错误:json:无法将数组解组为字符串类型的Go结构字段MyListItem.display_name 问题答案: 使用json.RawMessage捕获变化的字段。 使用json“-”名称对解码器隐藏字段。顶级JSON解码后,应用程序将填充此字段。 解组顶级JSON: 根据原

  • 在程序设计中,为了方便处理,通常把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据结构。一个数组可以分解成多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按照数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 本文主要介绍一维数组、二维数组和字符数组,其余的数组将会在以后的文章中介绍到。

  • 主要内容:适用于字符串构造的规则,字符串操作在R中的单引号或双引号中写入的任何值都将被视为字符串。在R内部将每个字符串存储在双引号内,即使您使用单引号创建它们。 适用于字符串构造的规则 字符串开头和结尾的引号应为双引号或双引号,他们不能混合。 双引号可以插入到以单引号开始和结尾的字符串中。 单引号可以插入到以双引号开始和结尾的字符串中。 双引号不能插入到以双引号开始和结尾的字符串中。 单引号无法插入到以单引号开始和结尾的字符串中。 有效字符

  • 主要内容:定义字符串,字符串拼接符“+”,字符串实现基于 UTF-8 编码,定义多行字符串一个字符串是一个不可改变的字节序列,字符串可以包含任意的数据,但是通常是用来包含可读的文本,字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。 UTF-8 是一种被广泛使用的编码格式,是文本文件的标准编码,其中包括 XML 和 JSON 在内也都使用该编码。由于该编码对占用字节长度的不定性,在Go语言中字符串也可能