在Jackson中反序列化基于数组的多态json

时间:2019-03-11 21:57:03

标签: java kotlin jackson

我有一个包含子对象的json数组:

[
  ["t", 1, 2, 3],
  ["o", "a", "b"]
]

其中“ t”和“ o”是键,而数组中的其他元素是数据值。 我想使用这些模型将该数组反序列化为类

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_ARRAY)
@JsonSubTypes(
    JsonSubTypes.Type(value = T::class, name = "t"),
    JsonSubTypes.Type(value = O::class, name = "o")
)
@JsonFormat(shape = JsonFormat.Shape.ARRAY)
sealed class A

data class T(val x: Int, val y: Int, val z: Int) : A()
data class O(val a: String, val b: String) : A()

当我这样做

println(json.writeValueAsString(T(1, 2, 3)))

我收到

[ "t", [ 1, 2, 3 ] ]

如何将嵌套数组展平为外部数组?

实际:["t", [ 1, 2, 3 ]]

预期:["t", 1, 2, 3]

0 个答案:

没有答案