Jackson json注释中以下jax-b注释的等效方式是什么?
我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。
如果json / xml元素名称是Java保留字(例如“ new
”,“ public
”,“ static
”等),则这些功能尤其重要。
因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“ _ static”等,
但请使用jax-b批注在生成的XML(和json)元素中将其重命名为“ new”,“ public”,“ static”等。
重命名字段
@XmlAccessorType(XmlAccessType.FIELD)
public class Person{
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected String address;
@XmlElement(name = "contractor")
protected boolean _restricted_ ;
@XmlElement(name = "new")
protected boolean _new_ ;
}
重定向到使用属性获取器 (我认为这是在jax-b中完成的方式)
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Person{
protected String name;
protected String address;
protected boolean _restricted_ ;
protected boolean _new_ ;
@XmlElement(required = true)
protected String getName() {return name;}
@XmlElement(required = true)
protected String getAddress() {return address;}
@XmlElement(name = "contractor")
protected boolean getRestricted() {return _restricted_;}
@XmlElement(name = "new")
protected boolean getNew(){return _new_;}
}
可能有点晚了,但是无论如何。
您可以重命名一个属性,只需添加
@JsonProperty("contractor")
默认情况下,Jackson使用getter和setter进行序列化和反序列化。
有关更多详细信息,请访问:http :
//wiki.fasterxml.com/JacksonFAQ
我有一个非常标准的Java POJO。让我们称之为狗: 狗java有一系列字段。在Java中,约定说字段名应该以小写开头。这意味着我有: 公共字符串名称 公共字符串狗型 公共弦重量 同时,我对我的JSON格式有一个要求,即JSON成员(名称、dogType和权重)的开头都要用大写字母书写,即名称、dogType和权重。 我在利用杰克逊。 如果我使用下面的标准序列化代码,我得到的JSON成员名称与它
Java类(用作数据传输对象): 类资源还有一个名为的字段,它的getter和setter具有不同的类型,因此出现语法错误。 由于上面的类是一个DTO,一个JSON响应(带有字段)将映射到它,并且不能使用getId(),我想将字段更改为,并相应地更改getter和setter,并用一个注释标记它,说明bind this to字段。 注意:我用的是Spring靴。我尝试使用@JSONProperty
我目前正在使用Jackson的XmlMapper和ObjectMapper。我想将该字符串映射到一个POJO(我想我正确地使用了该术语),该POJO有一个与JSON字符串字段同名的私有字段。XML字符串对于同一字段/属性有不同的名称,我想使用JSON字段名称。 我还想从本质上“忽略”该字段(同时保留它),并将其存储为类似于JsonNode的内容,因为该字段的值可以是一些复杂的嵌套值,而没有已知的形
我在寻找更“改进的方法”来实现这一点,我有一种方法,从一个id中获取所有记录,然后“映射”到一个类中,我有大约200个“标记”要映射,这将是一个非常长的if链。。。例子:
我正在努力用本地化反序列化世界天气在线API结果。 是否有更好、更简单的解决方案,只为lang对象编写一个自定义反序列化器,并允许GSON自动反序列化其余数据?
我正在探索GraphQL,想知道是否有任何重命名响应字段的方法,例如我有一个POJO与这些字段 GraphQL查询: 我的回答是这样的 我是否可以将名称字段重命名为类似用户名的名称,以便我的回答如下