java序列化与反序列化

Posted 终会飞翔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java序列化与反序列化相关的知识,希望对你有一定的参考价值。

先描述下这里的业务:
我们有一个父类A,多个继承A的AA类、AB类、AC类,多了一些不同的业务字段。
业务分为多个端,如:甲端、乙端,通过kafka来交互数据,数据格式为一个VO,包含多个业务属性以外,还有一个List<A>属性引用类,这里实质内容还是AA、AB、AC类。
甲端封装好对应的参数后,传递给乙端进行解析时。json无法直接转成对应的AA、AB、AC实现类。其中的业务字段会丢失。
这就是疑问的地方??? 这里我们比较了一下fastJson和gson,最后采取gson来解决此问题。


fastJson 是通过注解形式。如:
@JSONField(serializeUsing=ToSystemNameSerializer.class)
这里ToSystemNameSerializer.class是我们自定义的转换类,需要实现ObjectSerializer和ObjectDeserializer分别是fastjson的编码器和解码器接口


Gson 是同通过注册TypeAdapter。如:
Gson.addTypeAdapter(Type,ToSystemNameSerializer)
然后使用gson来解析json,如果识别到Type类了,则使用我们定义的ToSystemNameSerializer来解析
JsonSerializer和JsonDeserializer分别是gson的编码器和解码器接口

以上是关于java序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章

Java序列化与反序列化

Java序列化与反序列化

java 对象序列化与反序列化

Java序列化与反序列化

[Java安全]Java序列化与反序列化

[Java安全]Java序列化与反序列化