Java 强制转换对象以限制序列化中序列化的数据
假设我有以下课程:Java 强制转换对象以限制序列化中序列化的数据,java,kotlin,jackson,jackson-databind,Java,Kotlin,Jackson,Jackson Databind,假设我有以下课程: @JsonTypeInfo( use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.EXISTING_属性, property=“type”, 可见=真 ) @JsonSubTypes( JsonSubTypes.Type(FullXResult::class,name=“X”) ) 开放类BaseResult{ 受保护的val映射器:ObjectMapper=ObjectMapper() var x:String=“所有子类之间
@JsonTypeInfo(
use=JsonTypeInfo.Id.NAME,
include=JsonTypeInfo.As.EXISTING_属性,
property=“type”,
可见=真
)
@JsonSubTypes(
JsonSubTypes.Type(FullXResult::class,name=“X”)
)
开放类BaseResult{
受保护的val映射器:ObjectMapper=ObjectMapper()
var x:String=“所有子类之间的一些共享文本”
}
开放类minimaxResult:BaseResult(){
var y:String=“某些特定于X的公共文本”
}
类FullXResult:MinimalXResult(){
var z:String=“某些特定于X的私有文本”
乐趣asMinimal():minimaxresult{
返回mapper.convertValue(这是MinimalXResult::class.java)
}
}
我希望能够将JSON反序列化为FullResult,在重新序列化之前,将其转换为调用方的最小结果,这样对于示例类,属性x
和y
是序列化的,而属性z
不是@JsonIgnore
在这里不是一个选项,因为我还希望能够在某些条件下返回完整的结果
调用asMinimal
函数时,出现以下错误:
Could not resolve type id 'X' as a subtype of `MinimalXResult`: Class `FullXResult` not subtype of `MinimalXResult`
如果这种类型的铸造可以在没有杰克逊的情况下完成,那也很好。谢谢您的帮助。这能回答您的问题吗?JsonViews可能是另一个选项: