Java 仅忽略XML中的字段,而不忽略spring boot中的json(XML映射器)
如何在使用Java 仅忽略XML中的字段,而不忽略spring boot中的json(XML映射器),java,xml,spring-boot,jackson,fasterxml,Java,Xml,Spring Boot,Jackson,Fasterxml,如何在使用XMLMapper而不是JSON将POJO转换为XML时忽略某些字段 public String getXmlInString(String rootName, Object debtReport) { XmlMapper xmlMapper = new XmlMapper(); return xmlMapper.writer().withRootName(rootName).withDefaultPrettyPrinter().writeValueAsString(d
XMLMapper
而不是JSON将POJO转换为XML时忽略某些字段
public String getXmlInString(String rootName, Object debtReport) {
XmlMapper xmlMapper = new XmlMapper();
return xmlMapper.writer().withRootName(rootName).withDefaultPrettyPrinter().writeValueAsString(debtReport);
}
波乔班
Class Employee {
Long id;
String name;
LocalDate dob;
}
JSON中的预期输出
{
"id": 1,
"name": "Thirumal",
"dob": "02-04-1991"
}
XML格式的预期输出(需要忽略ID
)
蒂鲁马尔
02-04-1991
您可以使用
首先用两个“配置文件”声明视图类-默认(仅序列化default
字段)和仅序列化json(均序列化default
和json
字段):
公共类视图{
公共静态类Json扩展了默认值{
}
公共静态类默认值{
}
}
然后用Default
-视图标记始终可见的字段,用Json
视图标记ID字段:
public class Employee {
@JsonView(Views.Json.class)
Long id;
@JsonView(Views.Default.class)
String name;
@JsonView(Views.Default.class)
String dob;
}
然后指示映射程序在序列化过程中尊重给定的适当视图:
@测试
public void test()引发JsonProcessingException{
员工emp=新员工();
emp.id=1L;
emp.name=“约翰·多伊”;
emp.dob=“1994-03-02”;
//ID为的JSON
字符串json=newObjectMapper()
.writerWithView(Views.Json.class)
.writeValueAsString(emp);
System.out.println(“JSON:+JSON”);
//无ID的XML
String xml=new XmlMapper()
.writerWithView(Views.Default.class)
.writeValueAsString(emp);
System.out.println(“XML:+XML”);
}
最后,输出为:
JSON: {"id":1,"name":"John Doe","dob":"1994-03-02"}
XML: <Employee><name>John Doe</name><dob>1994-03-02</dob></Employee>
JSON:{“id”:1,“name”:“johndoe”,“dob”:“1994-03-02”}
XML:johndoe1994-03-02
JSON: {"id":1,"name":"John Doe","dob":"1994-03-02"}
XML: <Employee><name>John Doe</name><dob>1994-03-02</dob></Employee>