2016-05-25 8 views
2

Also arbeite ich an einer Windows-App, um meine Programmierung zu üben und mein Wissen zu erweitern und ich habe ein großes Problem mit dem JSON von Riot Games. Ich bin nicht wirklich sicher, dass die Terminologie nachschlagen sollte, weil ich nie gelernt habe, mit JSON zu arbeiten, also habe ich mit google-fu und stack-overflow als Referenzen und verschiedenen Dokumentationen einen fairen Fortschritt gemacht.Ein JSON mit mehreren verschiedenen Klassen als Antwort lesen

Ich erhielt alle folgenden Daten mit Inputstream und Outputstream. Aber es ist alles wie ein unformatierter JSON, keine Einschnitte und wirklich schwer zu lesen. Ich nehme an, dass ich hier das falsche Werkzeug für die Aufgabe verwendet habe und es nur Zeichen gelesen und gedruckt hat.

Meine Frage ist, welche Syntax sollte ich suchen, um ein JSON von einer URL in eine JSON-Datei zu importieren. Was soll ich dann betrachten, um JSON als mehrere verschiedene Java-Objekte zu konvertieren oder zu lesen, damit ich die Daten in meinem Code verwenden kann.

Die Verwendung von Gson ist eine Option, die ich bereits erkundet habe, aber ich bin nicht mit ihrer Syntax vertraut, und ich würde lieber von 3rd-Party Abhängigkeiten vermeiden, wenn ich es helfen kann.

Jede Idee oder Diskussion ist willkommen, ich bin ein wenig über meinen Kopf mit dem JSON hier, so dass jede Diskussion, von der ich lernen kann, helfen würde.

Antwort

1

Trotz Ihrer Abneigung gegen Bibliotheken von Drittanbietern, würde ich stark in Betracht ziehen, in die Jackson-Bibliothek für Java zu suchen, und seine Deserialisierung/Serialisierungsfunktionen zu verwenden.

Im Wesentlichen erstellen Sie Java-Objekte, die aus JSON zugeordnet werden können. Zum Beispiel für das JSON:

{ 
    "email": "[email protected]", 
    "googleId": "43243243242432", 
    "name": "some name" 
} 

eine Java-Klasse erstellen:

public class User { 

    private String email; 
    private String googleId; 
    private String name; 

    // Getters and Setters... 
} 

Sie können dann das JSON-String an das Objekt abzubilden, Jackson Objekt Mapper, zB:

ObjectMapper mapper = new ObjectMapper(); 
User user = mapper.readValue(myJsonString, User.class); 

Damit können Sie einfach auf die Felder zugreifen:

String name = user.getName(); // some name 
String email = user.getEmail(); // [email protected] 

und so weiter.

+0

ich auf diese etwas zu lesen tun werde auf jeden Fall, meine Abneigung meist nur weil ich es will aktualisiert nicht davon abhängen, etwas anderes zu werden in der Zukunft. Aber manchmal ist es auch die richtige Wahl. Betrachtet man die Anzahl der Klassen und Mitglieder, sieht es so aus, als wäre die Jackson-Bibliothek die beste Wahl. –

+0

@NauFirefox Es ist definitiv keine schlechte Sache, von Drittanbieter-Bibliotheken müde zu sein, es ist gut, dass Sie sich dessen bewusst sind! Eines der großen Dinge an Jackson ist, dass es so weit verbreitet ist, dass es Tonnen an Ressourcen gibt, die es ermöglichen, es zu lernen und zu benutzen. –

0

Wenn Sie dies vollständig in Java tun möchten, gehen Sie einfach zum Ende. Ich dachte zuerst an Java Script. Aber bemerkt, dass du das vielleicht nicht auf halbem Wege machen willst.

Um eine JSON-Datei von einer URL zu erhalten, müssen Sie höchstwahrscheinlich Java Script verwenden. Und dafür hat JQuery, ein Tool für Java Script, eine Funktion. Siehe .getJSON(). Wenn Sie wirklich keine Drittanbieter verwenden möchten, können Sie dies in nativem JavaScript tun, siehe https://stackoverflow.com/a/2499647/1361042. Die Verwendung von JQuery ist jedoch wahrscheinlich viel einfacher.

$.getJSON('url', function(data) { 
    //data is the JSON 
}); 

Dann schreiben Sie die Daten (ein JSON-Objekt) in eine JSON-Datei. Diese Datei kann dann in Ihrem Java verwendet werden, wo die JSON-Datei importiert und als JSON-Objekt verwendet wird, das Sie in Java-Objekte konvertieren können.

JSON-Objekte sind grundsätzlich Java Script-Objekte mit ein wenig anderer Formatierung. Java-Objekte haben ein anderes Format als Java Script-Objekte. Sie müssen also etwas konvertieren. Diese Frage berührt das.

Convert a JSON string to object in Java ME?

Java

Allerdings könnte es einfacher für Sie, dies zu tun vollständig in Java, wenn das Ihre Stärke ist. Wenn Sie es komplett in Java machen wollen, ist der obere Teil ziemlich irrelevant.

Dies ist, was ich auf Java gefunden verwendet:

simplest way to read json from a URL in java

Verwandte Themen