2016-06-03 5 views
0

Ich habe eine Anforderung, wo ich die JSON-Antwort von REST API bekomme.Kann ich zur Laufzeit JSON zu Java POJO erstellen?

Ich kann ein POJO erstellen und das JSON in JAVA konvertieren, aber dieses particulate POJO ist für mich in Zukunft oder in anderer Funktionalität nicht von Nutzen.

Daher habe ich überlegt, die JSON dynamisch zu konvertieren Java mit einer beliebigen API und rendern die Objekte in der JSP.

Können Sie mir sagen, ist dies eine gute Praxis und wie kann ich das tun?

Expected JSON Antwort:

{ 
"_id": "", 
"title": "", 
"contact": "", 
"country": "", 
"children": [ 
    { 
    "title": "", 
     "contact": "", 
     "country": "", 
     "children": [ 
      { 
      "title": "", 
      "contact": "", 
      "country": "", 
      "children": [] 
      } 
      ] 
     } 
     ] 
    } 

Antwort

0

Ich glaube nicht, dass es da zu tun, die Umwandlung in einen aktuellen Java-POJO eine gute Praxis ist, dass Sie die JSON sind die Überprüfung ist in gewisser Weise richtig nach dem, was Sie erwarten erhalten, keine echte Überprüfung, aber besser als nichts.

Auf jedem Fall, wenn Sie einen aktuellen Java-POJO haben, wollen Sie nicht einen Karte < String verwenden können, Object > die Daten zu speichern und es in der jsp machen, können Sie Jackson-Bibliothek verwenden, um diese Umwandlung zu erreichen .

Grüße.

UPDATE FÜR FRAGE:

es mit diesem Schema ganz einfach aussieht, können Sie die gleiche Klasse wie Eltern und Kinder, so etwas wie folgt verwenden:

public class YourPojo implements Serializable { 
    private String _id; // not good practice start by underscore 
    private String title; 
    private String contact; 
    private String country; 
    private List<YourPojo> children; 

    // constructors, getters, setters... 
} 

Grüße.

+0

Vielen Dank für Ihre Antworten, wenn POJO genuate ist eine gute Praxis, dann werde ich dafür gehen. Ich habe die JSON-Ausgabe zur Verfügung gestellt, die ich bekommen werde, und die Kinder-Ebene kann bis zu maximal 8 Ebenen oder weniger gehen. Können Sie mir sagen, wie mein POJO aussehen sollte, wie ich Online-Tool versucht und es gab mir 1 Kategorie-Klasse und 2 Child-Unterklassen aber wie ich bereits erwähnt, ist es nicht festgelegt, wie viele Level der Kinder ich bekommen kann, also möchte ich wirklich um es generisch zu haben. – user3306543

+0

Ich habe das Beispiel zu mir geantwortet. –

+0

Nein, dieser POJO passt nicht in meinen Fall, da das Child-Schema keine ID hat Also plane ich eine Paresnt-Klasse mit allen Feldern, die Sie definiert haben, zusammen mit der privaten Liste Kinder; Und Kinder Klasse wird die gleichen Felder außer der ID haben. – user3306543

0

Ich würde einen ähnlichen Ansatz wie in XML verwenden: parsen Sie den JSON in eine generische Struktur (DOM für XML) und verwenden Sie dann konfigurierbare Mittel, um die Daten zu extrahieren, die Sie interessieren, z. XPath für XML oder JSONPath für JSON.

Dies bedeutet, dass Sie mit Code fertig werden, der mit jedem wohlgeformten JSON umgehen kann und mit dem Sie jeden Teil der Nachricht durch Konfiguration extrahieren können.