Jackson : Konvertieren von JSON-Eigenschaft für verschachtelte Objekt mit Punkt-Notation
Habe ich eine JSON-wie dies
{ "id":1, "name":"Jack", "parent.id":2 }
Beachten Sie den Punkt auf "Eltern.id" - Eigenschaft
Ist es möglich, Karte die JSON zu den folgenden Klassen ?
class Child {
private int id;
private String name;
private Parent parent;
//getter and setter methods
}
class Parent {
private int id;
private String name;
//getter and setter methods
}
Also das mapping-Ergebnis wäre ähnlich der folgenden Aussagen:
Parent parent = new Parent();
parent.setId(2);
Child child = new Child();
child.setId(1);
child.setName("Jack");
child.setParent(parent); //Here is the result
- Sie können dies tun, indem Sie Ihre eigenen MessageBodyReader, aber ich habe zu Fragen ... warum?
- Denn ich bin mit ExtJS und JSON gesendet mit format wie oben.
- Wir haben Ext.js Kunden in all unseren Lösungen. Holen Sie sich die GUI-dev ' s zu beheben, Ihre Modelle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie wandeln diese
in diesem
durch die Nutzung dieser
dann können Sie serialisieren Sie den code, indem
JSON.serialize()
.wenn Sie mit Jackson, dann können Sie Deserialisieren der JSON-request-string, indem Sie einen von diesen:
1. erstellen Sie eine benutzerdefinierte Jackson Deserialisieren Modul
2. Parsen der JSON-selbst
der Nachteil dieser Methode ist, Sie zu analysieren, jedes einzelne JsonRequest mit verschachtelten Objekten und es wird chaotisch sein, wenn es eine komplexe, verschachtelte Struktur. Wenn dies ein problem ist, schlage ich vor, Sie haben die #3
3. erstellen Sie eine benutzerdefinierte Jackson-ObjectMapper-Klasse um diesen Prozess zu automatisieren
Die Idee ist, erstellen generischer Prozess für #2, so dass es könnte der Griff einer verschachtelten Anfrage.
Wenn Sie der Frühling, dann der Letzte Schritt ist die Registrierung dieser Klasse als Spring-bean.
mit diesen set können Sie problemlos verwenden
Hoffe, das hilft 🙂