Lesen mehrere JSON-Objekten aus einer einzelnen Datei in Java mit Jackson

So, ich habe mein bestes getan, um Forschung ähnliche Probleme wie diese, aber ich bin ziemlich neu in Java und JSON, so dass ich entschuldige mich, wenn dies redundant ist. Ich arbeite an einem einfachen text-basierten RPG für meine Java-Klasse in diesem semester, und ich möchte speichern, Zeichen-Informationen und location-Informationen in XML-oder JSON. Ich habe beide ausprobiert, und scheint zu sein, immer weiter mit JSON und Jackson. Ich habe geschrieben einige tester code, um dies auszuprobieren, bevor die Umsetzung in meinem Spiel, aber grundsätzlich will ich jedes Spiel "Standort", um eine integer-ID#, einige string-Informationen und eine Liste der exitNodes (die schließlich entsprechen an anderen stellen im Spiel). Hier ist ein Beispiel meiner JSON:

{
"1":{
    "enterInfo":"Test Location Information",
    "exitNodes":[2,3]
},
"2":{
    "enterInfo":"More Test Location Info",
    "exitNodes":[4,5]
},
"3":{
    "enterInfo":"More Test Location Info",
    "exitNodes":[6,7]
}
}

Ich vermute, könnte ich organisieren meine JSON ein bisschen besser, aber im Idealfall möchte ich in der Lage sein, auf ein Objekt zugreifen, indem es die Anzahl und die "enterInfo" und "exitNodes" zurück. Ich habe Stunden damit verbracht, zu versuchen, verschiedene Dinge ohne Erfolg, aber das beste, das ich tun kann, ist, schnappen Sie sich das gesamte JSON-Dokument als JsonNode die gibt einfach, mir die gesamte Struktur, aber nicht zu einem einzelnen Objekt.

Hier ist eine test-Klasse (ohne Konstruktor/Getter/setter/Methoden) bin ich zu versuchen, um die JSON-in:

public class ObjectTest{
    int id;
    String enterInfo;
    int[] exitNodes;
}

Und hier ist, was ich arbeite so weit ich erkennen, dass ich bin nicht einmal in der Nähe zu erreichen ist mein Ziel hier, aber ich bin aus Ideen heraus und die Dokumentation ist zu Beginn verwirrend, also habe ich entfernt, meine versuche, zu isolieren, ist eines der Objekte im JSON-Datei und instanziieren eines "ObjectTest" Objekt:

package jacksontester;


import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;


    public class JackSONTester {

    public static void main(String[] args) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        JsonNode localeTemp = mapper.readTree(new File("src/jacksontester/TestMeJSON.json"));
        System.out.println(localeTemp);
    }
}

Nicht, dass es wirklich wichtig ist, aber hier ist was druckt:

{"1":{"enterInfo":"Test Location Information","exitNodes":[2,3]},"2":{"enterInfo":"More Test Location Info","exitNodes":[4,5]},"3":{"enterInfo":"More Test Location Info","exitNodes":[6,7]}}

Was ich will, zu erreichen, ist die Erstellung eines "ObjectTest" - Objekt mit den Werten aus meiner JSON. Wieder, sorry, wenn dies ist ein Duplikat, ich habe gelesen, durch zahlreiche Beiträge bereits, aber ich bin neu hier...

EDIT: merkte ich jetzt, dass meine JSON-Datei muss wohl organisiert sein, eher wie dieser:

{"locations":[
     {   "id":0,
         "enterInfo":"Test Location Information",
         "exitNodes":[1,2]
     },
     {   "id":1,
         "enterInfo":"More Test Location Info",
         "exitNodes":[2,3]
     },
     {   "id":2,
         "enterInfo":"More Test Location Info",
         "exitNodes":[4,5]
     }
     ]
     }

Ich brauchen würde, dann erstellen Sie eine Liste von Objekten definiert, die durch den JSON?

InformationsquelleAutor purpleSun | 2013-04-30
Schreibe einen Kommentar