2017-11-21 4 views
1

Ich benutze Jersy für die Herstellung von Json in einer Anwendung. Der Code-Schnipsel, die Json erzeugt, ist wie folgtNullwert in Json anzeigen

@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 ist einfach Java-Klasse mit dem folgenden Code

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; 
    } 
} 

Dann, wenn ich diesen Web-Service, den ich die folgende Ausgabe enter image description here

erhalten laufen

Ich möchte hier kein Alter = 0 bekommen, weil ich die Alter-Eigenschaft meines Objekts nicht gesetzt habe. Was ist seine Lösung? Ich möchte Alter zu sein scheint, wenn ich den Wert anders gesetzt soll es nicht erscheinen ..

+0

Es gibt keine Möglichkeit, dass jemand wissen kann, ob ein int Wert 0 hat, weil Sie es gesetzt haben, oder weil Sie es nicht getan haben und es daher seinen Standardwert hat. Sie benötigen etwas anderes, wie eine Ganzzahl (die standardmäßig null wäre), um das zu tun. Beachten Sie bitte die Java-Namenskonventionen. Klassen beginnen mit einem Großbuchstaben. –

+0

Ok. Ich habe dieses Beispiel nur für Testzwecke gemacht, deshalb folge ich nicht den Konventionen. –

+0

Aber danke für die Antwort –

Antwort

0

Verwenden Jakson, here Sie ein JSON Beispiel mit Jersey + Jackson finden. So können Sie @JsonSerialize Annotation verwenden, um leere oder leere Felder auszuschließen.

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) 

oder

@JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY) 

aber es ist keine gute Praxis null oder leere Felder in erholsamen Anwendungen auszuschließen, weil es Fehler in Client-Seite führen.