2016-07-29 7 views
0

ich versuche json mit einer einfachen dynamischen Variable deserialisieren: auf der verschachtelten „Lotterie“, manchmal der letzte ist nicht gekommen, manchmal leer ist:Jackson API - deserialisiert JSON mit einfachen dynamischen Objekt

{ 
    "name": "Michael ", 
    "surname":"Rodriguez", 
    "Lottery": { 
     "number 1": "855-333-4432", 
     "number 2": "815-355-1111", 
     "number 3": "208-222-322" 
    } 
}, 
{ 
    "name": "Captain ", 
    "surname":"America", 
    "Lottery": { 
     "number 1": "444-333-888", 
     "number 2": "222-333-444", 
    } 
}, 
{ 
    "name": "Pet ", 
    "surname":"Sounds", 
    "Lottery": { 
     "number 1": "815-833-8888", 
     "number 2": "834-343-1343", 
     "number 3": "" 
    } 
} 

Schaffung also bin ich ein Modell Klasse wie folgt:

public class Person { 
    private String name; 
    private String surname; 
    private Lottery Lottery; 


    public String getName() { 
     return name; 
    } 

    public String getSurname() { 
     return surname; 
    } 

    public Lottery getLottery() { 
     return Lottery; 
    } 

    public void setName(String sName) { 
     name = sName; 
    } 

    public void setSurame(String sSurname) { 
     surname = sSurname; 
    } 

    public void setLottery(Lottery sLottery) { 
     Lottery = sLottery; 
    } 
} 

public class Lottery { 
    private String number 1; 
    private String number 2; 
    private String number 3; 

    public String getnumber 1() { 
     return number 1; 
    } 

    public String getnumber 2() { 
     return number 2; 
    } 

    public String getnumber 3() { 
     return number 3; 
    } 

    public void setnumber 1(String snumber 1) { 
     number 1 = snumber 1; 
    } 

    public void setnumber 2(String snumber 2) { 
     number 2 = snumber 2; 
    } 

    public void setnumber 3(String snumber 3) { 
     number 3 = snumber 3; 
    } 
} 

bin ich es richtig machen, oder ich werde mit dem fehlenden Variable Probleme haben?

Vielen Dank im Voraus !!!!

+1

Sie brauchen keinen Konstruktor oder Setter für diese Felder? – parohy

+0

@parohy ja, bearbeitet, danke! – emboole

Antwort

1

Sie müssen die @ JsonProperty nicht zu jedem Feld hinzufügen, wenn Sie den gleichen Namen wie das Feld verwenden, da dies standardmäßig erfolgt. Jackson kann ohne Probleme mit leeren Werten umgehen.

+0

danke, werde es gleich ausprobieren! Also, wenn kein Feld kommt (JSON-Objekt 2) kann es gut umgehen? – emboole

+0

Ja, es wird gut funktionieren. Das Feld ist nur erforderlich, wenn Sie es so angeben. – Franjavi