我如何在使用Jackson的序列化过程中更改类名

问题描述

'us.package.high.MyClass'不在受信任的软件包中: java.util,java.lang,us.package.low.MyClass

类是相同的。如何在序列化期间更改typeId(类名)? 现在是“ us.package.high.MyClass”,但我需要将其设置为“ MyClass”;

解决方法

使用Jackson的@JsonTypeInfo注释:

package us.package.high.MyClass;

@JsonTypeInfo(include=As.WRAPPER_OBJECT,use=Id.NAME)
public class MyClass {

...

}

如果您正在使用Jackson来处理JSON,它将有所帮助。

如果您正在使用其他库,请搜索该功能。

如果您不使用任何库来处理JSON,请尝试实现toString()方法,并实际上实现Serializable接口:

public  class MyClass  implements Serializable { \\... }