Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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 JAX-RS只序列化少数属性_Java_Rest_Jax Rs - Fatal编程技术网

Java JAX-RS只序列化少数属性

Java JAX-RS只序列化少数属性,java,rest,jax-rs,Java,Rest,Jax Rs,我们有一个类似下面的DTO public class Student { private String name; private String id; private ExamResults results; private Address residentialAddress; private Address permanentAddress; // setter and getter methods } 多个端点(如student/deta

我们有一个类似下面的DTO

public class Student {
    private String name;
    private String id;
    private ExamResults results;
    private Address residentialAddress;
    private Address permanentAddress;
    // setter and getter methods
}
多个端点(如student/details/{studId}、student/details/{studId}/results)使用相同的DTO

在student/details/{studId}端点中,我们不填充
结果
属性。但它仍然在响应中返回为null

类似地,在student/details/{studId}/results中,我们不填充
permanentAddress
residentialAddress
,但它们仍然在响应中作为null返回

基本上,我希望控制基于端点序列化的属性,而不管它们是否为null

谢谢。

您可以尝试使用

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Student {

此注释来自jackson,仅当底层JAX-RS实现在内部使用jackson时才起作用。由于不同应用程序服务器的底层实现不同,因此解决方案可能不起作用。但事实上,您负责库管理(构建工具:maven、gradle、ant等)。Application server不会更改它。我们不希望管理jaxrs库,希望使用默认的Application server实现。抱歉,我已编辑了我的问题。我想控制序列化哪些属性,而不管它们是否为null。在这种情况下,您可以尝试编写自定义JsonSerializer并实现所有规则。(Jackson)看看JsonSerializer或ContextResolver。这里有一个例子