2017-03-24 2 views
-3

Wenn ich eine JSON wieJackson json zu Java-Objekt-Mapping

`{ 
"entity":{ 
"name":"xyz", 
"age":21 
} 
}` 

Dann passieren, ist es zwingend, dass meine POJO sollten beide "name" und "age" Instanzvariablen. Ich meine, wenn ich nur "Name" Instanz Feld habe, wird es irgendwelche Ausnahme beim Mapping geben?

+2

versuchst du es? – Jerry06

+0

Was hast du bisher versucht? –

Antwort

0

ist es obligatorisch, dass mein POJO sollten sowohl „name“ haben und „Alter“ Instanzvariablen

Wenn Sie meinen, wie sie in den gleichen Namen „haben“ genau, dann nicht. Sie können Annotationen verwenden, um die Werte umzubenennen.

Wenn Sie stattdessen meinen, die Klassendefinition "enthält" diese Werte, dann sollte sie auch nicht gebraucht werden. Das hängt davon ab, wie Sie ObjectMapper konfigurieren. Zum Beispiel gibt es an AnyGetter annotation, mit dem Sie "zusätzliche" JSON-Werte sammeln können. Daher ist es sinnvoll, dass Pflichtfelder nicht erforderlich sind.

1

Wenn Ihr JSON zusätzliche Felder enthält, die in POJO nicht vorhanden sind, wird eine Ausnahme ausgelöst. Um zu vermeiden, dass Sie zusätzliche Felder mit dieser Annotation @ JsonIgnoreProperties ignorieren können. Wenn Feldnamen unterschiedlich sind, können Sie den Feldgetter mit @jsonProperty definieren. (für die Deserialisierung). für die Serialisierung verwenden Annotation auf der Setter-Methode.

@JsonIgnoreProperties(ignoreUnknown = true) 
class Pojo { 
    private String name; 

    @jsonProperty("firstName") 
    public String getName(){ 
     return this.name; 
    } 
} 
Verwandte Themen