fastjson json在继承关系当中的反序列化

oxcyiej7  于 2022-12-31  发布在  其他
关注(0)|答案(2)|浏览(273)

Family包含有Child,Child有两个子类,一个是Son,另一个是Daughter。
当收到的Json字符串为
{“child”:{“childName”:”张三”,”girlFirendName”:”小红”}}时,此时用Family去反序列化,”girlFirendName”:”小红” 信息会丢失。
这是因为在Family当中只包含有Child类,因此在反序列化的时候,就会用使用Child类,而Child类当中并没有girlFriendName信息,因此这段信息就会被丢弃。

在jackson中可以这样实现,参考
https://blog.csdn.net/hbdatouerzi/article/details/70196302

请问在fastjson中怎么实现?

qnakjoqk

qnakjoqk1#

几种方法:

  1. 使用JSONType
@JSONType(deserializer=XXX.class)
  1. 使用SeeAlso https://github.com/alibaba/fastjson/wiki/JSONType_seeAlso_cn
8nuwlpux

8nuwlpux2#

@wenshao 能不能介绍一下 这种情况下的具体使用示例?
目前我这边也遇到这个问题, msg里面包含 msg (含有 type 字段), msg 实现了 iMsg (没有type字段) ,然后通过序列化的时候 msg 里面的 type 字段丢失了。

而且这个 iMsg 是别人 sdk 里面的类,没办法修改。该如何操作?

相关问题