jjzjj

JsonTypeInfo

全部标签

java - Jackson:从 XSD 生成 Jackson 类

类似于JAXB为给定的XSD生成JAXB类,Jackson是否提供任何实用程序来从XSD或JSON生成Jackson类。JAXB类geberator已经为定义的XSD模式生成了一组类。例如,对于多态类型,JAXB具有以下注释以根据XML元素名称识别名称。@XmlElements({@XmlElement(name="Dog",type=Dog.class),@XmlElement(name="Cat",type=Cat.class)})protectedListanimal;是否可以在Jackson中创建类似的类。即,根据XML元素名称识别类型。 最佳答案

java - JAX-RS:从具有声明的抽象返回类型的方法返回具体类实例

我有一些使用JAX-RS和Jackson的REST服务。我的客户希望将抽象类作为服务的返回类型,而我不知道如何让JAX-RS客户端返回具体子类的实例。这对XML和JSON表示都可行吗?如果是这样,将感谢示例和/或链接。 最佳答案 可以尝试添加JsonTypeInfo和JsonSubTypes注解@JsonTypeInfo(use=Id.CLASS,include=JsonTypeInfo.As.PROPERTY,property="type")@JsonSubTypes({@Type(value=MySubClass.class)}

java - jackson :数组中缺少@JsonTypeInfo

我发现JacksonJSONProcessor库有一些奇怪的行为,我很好奇这是故意的还是错误。请看下面的代码:@JsonTypeInfo(use=Id.NAME)publicclassNut{}…ObjectMappermapper=newObjectMapper();Nutnut=newNut();Objectobject=newNut();Nut[]nuts=newNut[]{newNut()};Object[]objects=newObject[]{newNut()};System.out.println(mapper.writeValueAsString(nut));Syste

java - @JsonTypeInfo 属性在 POJO 反序列化期间被忽略

我正在使用@JsonTypeInfo指示Jackson2.1.0在“鉴别器”属性中查找具体类型信息。这很好用,但在反序列化期间没有将鉴别器属性设置到POJO中。根据Jackon的Javadoc(com.fasterxml.jackson.annotation.JsonTypeInfo.Id),它应该:/***Propertynamesusedwhentypeinclusionmethod({@linkAs#PROPERTY})isused*(orpossiblywhenusingtypemetadataoftype{@linkId#CUSTOM}).*IfPOJOitselfhasap

java - 有没有办法从元注释中注入(inject) Jackson 注释值,类似于 Spring 的 AliasFor 注释?

我们正在使用@JacksonAnnotationsInside并希望使用元注释从类中注入(inject)一个属性。即我们有一个带有@JsonTypeInfo()的元注解,并希望通过聚合注解注入(inject)defaultImpl。这是我尝试使用的注释:@Inherited@JacksonAnnotationsInside@Retention(RetentionPolicy.RUNTIME)@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS,include=JsonTypeInfo.As.PROPERTY,property="@class")//,defau

java - @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)在返回响应时不起作用

我正在使用Jersey编写REST服务。我有一个带有注释的抽象类Promotion:@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS)因此,当我返回一个对象列表时:@GET@Produces(MediaType.APPLICATION_JSON)@Path("promotions/")publicListgetClosestPromotions(){Listpromotions=getPromotions();//hereIgetsomeobjectsreturnpromotions;}我得到一个Json字符串,其中包含该列表中每个对象的“@class”字

java - Jackson 2.1 多态反序列化 : How to populate type field on pojo?

我正在从REST服务中提取类别和项目树。类别具有包含类别和/或项目列表的“子”属性。它们的类型在“种类”字段中指定。Jackson的多态类型处理非常好,一切都按预期工作,除了一个小问题:“kind”字段本身没有填充。有没有一种简单的方法可以将这些数据放到pojos上?我希望不必编写自定义反序列化程序。这是类别和项目的基类。这两个子类添加了几个标量场,不是很有趣。@JsonIgnoreProperties(ignoreUnknown=true)@JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo.As.PROPERTY,p

java - 替代 Jackson @JsonSubTypes

Jackson框架提供了基于注解的方法来在序列化过程中发出类型信息。我不想在我的父类(superclass)(动物)中使用@JsonSubTypes注释。相反,我想告诉我的子类,即Dog和Elephant,Animal是它们的父类。有没有在Animal类中不使用注释的方法。如果是,请提供尽可能执行相同操作的示例。以下是我正在尝试解决的案例。“测试”收到的JSON包含“类型”字段,如“狗”或“大象”。我想将这两个类注册为“Animal”类的子类型,但不想在Animal中使用@JsonSubTypes。如有任何帮助,我们将不胜感激。提前致谢。@JsonTypeInfo(use=JsonTy

java - 什么@JsonTypeInfo.ID选择属性= "type.id"反序列化,JsonTypeInfo.Id.CUSTOM?

所以我的JSON看起来像这样:{"ActivityDisplayModel":{"name":"lunchwithfriends","startTime":"12:00:00","type":{"id":"MEAL","description":"Meal"},"complete":false}}我正在尝试找到让@JsonTypeInfo不再因为在type对象中包含类型参数而生我的气。当字段type是一个String而不是一个对象本身时,我已经开始工作了,但是为了以后的处理,我需要它作为一个对象。我知道以下内容不起作用,我猜有一种方法可以使用JsonTypeInfo.Id.CUSTOM

java - 什么是 @JsonTypeInfo 和 @JsonSubTypes 在 jackson 中的用途

Jackson中使用的@JsonTypeInfo和@JsonSubTypes注释是什么?publicclassLionextendsAnimal{privateStringname;@JsonCreatorpublicLion(@JsonProperty("name")Stringname){this.name=name;}publicStringgetName(){returnname;}publicStringgetSound(){return"Roar";}publicStringgetType(){return"carnivorous";}publicbooleanisEnda
12