Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅忽略XML中的字段,而不忽略spring boot中的json(XML映射器)_Java_Xml_Spring Boot_Jackson_Fasterxml - Fatal编程技术网

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>