Jackson将包括';类别';将对象序列化为json时的字段
我需要我的Grails应用程序与使用Jackson的客户端进行通信(JSON)。默认情况下,Grails在生成的json中包含“class”。另一方面,默认Jackson的Jackson将包括';类别';将对象序列化为json时的字段,json,jackson,Json,Jackson,我需要我的Grails应用程序与使用Jackson的客户端进行通信(JSON)。默认情况下,Grails在生成的json中包含“class”。另一方面,默认Jackson的ObjectMapper无法识别“类”,它会抛出错误 我找到了解决方案,在每个正在使用的POJO类上添加@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS,include=JsonTypeInfo.As.PROPERTY,PROPERTY=“CLASS”) 但是,我不喜欢这种方法。因为现在我的POJ
ObjectMapper
无法识别“类”,它会抛出错误
我找到了解决方案,在每个正在使用的POJO类上添加@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS,include=JsonTypeInfo.As.PROPERTY,PROPERTY=“CLASS”)
但是,我不喜欢这种方法。因为现在我的POJO将依赖于杰克逊的罐子。还有其他简单的选择吗
我试图从objectMapper.getSerializationConfig()中找出答案代码>,但仍然找不到替换该批注的替代方法
谢谢您是使用类型信息进行多态实例化还是忽略该信息?您可能可以在类上使用@JsonIgnoreProperties({“class”})
如果您真的不想向类添加注释,可以使用mix-in机制。尽管直接将注释添加到类中要容易得多,当然,如果您控制类的话
mapper.addMixInAnnotations(YourClass.class, TypeInfoMixIn.class);
mapper.addMixInAnnotations(YourSecondClass.class, TypeInfoMixIn.class);
// etc.
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="class")
public class TypeInfoMixIn {}
我无法控制这些类,因此此AddMixinNotations将非常有用。谢谢