我目前正在使用Jackson编写一些代码来将旧版POJO序列化为XML,但我需要使用属性而不是子元素来序列化它们.有没有办法在没有为遗留类添加注释的情况下使用Jackson?
有没有办法在没有为遗留类添加注释的情况下使用Jackson?
您可以尝试在jackson中使用Mix-in注释.通过这种方式,您可以保留旧版课程,同时享受注释功能.这是如何做.
Person.class
class Person {
private String username;
private String lastName;
private String address;
private Integer age;
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
Mixin.class
abstract class Mixin{
@JacksonXmlProperty(isAttribute = true)
abstract String getUsername();
@JacksonXmlProperty(isAttribute = true)
abstract String getLastName();
@JacksonXmlProperty(isAttribute = true)
abstract String getAddress();
@JacksonXmlProperty(isAttribute = true)
abstract String getAge();
}
Run Code Online (Sandbox Code Playgroud)
主要方法
public static void main(String[] args) throws JsonProcessingException {
Person p = new Person("Foo","Bar");
p.setAddress("This address is too long");
p.setAge(20);
ObjectMapper xmlMapper = new XmlMapper();
xmlMapper.addMixInAnnotations(Person.class, MixIn.class);
String xml = xmlMapper.writeValueAsString(p);
System.out.println(xml);
}
Run Code Online (Sandbox Code Playgroud)
产量
<Person xmlns="" username="Foo" lastName="Bar" address="This address is too long" age="20"></Person>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2874 次 |
最近记录: |