我正在使用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;
}
}
我不想在这里得到年龄= 0因为我没有设置我的对象的年龄属性。 它的解决方案是什么?我希望年龄出现,如果我设置值,否则它不应该出现..
答案 0 :(得分:0)
使用 Jakson ,here即可找到
泽西+杰克逊的JSON示例。
因此,您可以使用@JsonSerialize
注释来排除空字段或空字段。
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
或
@JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY)
然而,在restful应用程序中排除null或空字段并不是一个好习惯,因为它可能会导致客户端出错。