在Json中显示零值

时间:2017-11-21 23:05:54

标签: java web-services jersey jersey-2.0

我正在使用Jersy在应用程序中生成Json。 生成Json的代码片段如下

    @GET    
    @Produces(MediaType.APPLICATION_JSON)
    @Path("sample")
    public List<test> displaySampleMessage(@PathParam("id") int id) 
    {
        System.out.println(id);
        List<test> sample1 = new ArrayList<>();

        test temp1 =    new test();
        temp1.setName("abc");   
        sample1.add(temp1);

        return sample1;
    }

Test是一个简单的java类,代码如下

package webServiceTester;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class test 
{
    private String name;
    private int age;

    public test()
    {

    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public test(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }   
}

然后,当我运行此Web服务时,我得到以下输出 enter image description here

我不想在这里得到年龄= 0因为我没有设置我的对象的年龄属性。 它的解决方案是什么?我希望年龄出现,如果我设置值,否则它不应该出现..

1 个答案:

答案 0 :(得分:0)

使用 Jakson here即可找到 泽西+杰克逊的JSON示例。 因此,您可以使用@JsonSerialize注释来排除空字段或空字段。

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

@JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY)

然而,在restful应用程序中排除null或空字段并不是一个好习惯,因为它可能会导致客户端出错。