Verwandte Themen

Wie liest man in Java eine Json Datei dynamisch aus?

Hallo,

aktuell bin ich dabei einen Code zu schreiben, der nichts weitermachen soll als eine Json Datei dynamisch auszulesen und in einer Liste zu speichern, die ich später verarbeiten werde. Das Problem ist, ich wüsste nur wie ich eine Json Datei auslesen kann, wenn ich ihr Format kenne, aber da man in meinem Fall wirklich jedes Format haben kann (z.B. Object - Object, Array - Object, Object - Array, usw...) ist es mir nicht möglich eine passende Methode dafür zu schreiben. Die Gson Lib ist meiner Meinung nach dafür die sinnvollste, da man mit der "fromJson(..)" Methode alles mögliche machen kann, nur eben kein dynamisches Auslesen. Um diese Methode zu definieren, bedarf es einer Wrapperklasse (sprich: Pojo, wofür man wiederum die Struktur der Datei kennen muss) oder einem Type bzw. TypeToken (bspw. HashMap oder List, wofür man aber auch die Datei kennen muss).

Mein Lösungsansatz:

Ich lese meine Json Datei als File ein, gebe mir diese als String zurück und übergebe diesen an die Methode, die mir solche Kopfschmerzen bereitet. Dort wird rekursiv geprüft, ob es sich um ein JsonObject, JsonArray, Map oder List handelt und wird auch dementsprechend gehandelt. Klingt einfach und gut, ist es aber nicht, da es nur bedingt funktioniert. Eine Json Datei, die nicht mit einem Array anfängt ist kein Problem, sollte sie es doch, ist es ein Problem. Zudem wird mir bei einem Leerzeichen eine Exception geworfen. Da ich den JsonReader verwendet habe, sollte die Methode "setLenient(..)" dafür zuständig sein mit solchen Dingen umzugehen, sofern man diese auf "true" setzt - funktioniert aber natürlich nicht.

Seit ca. 2 Wochen bin ich daran am verzweifeln. Hat jemand eine gute Lösung für mein Problem?

Vielen Dank für eure Hilfe.

Freundliche Grüße

Computer, Programmieren, Java
1 Antwort
Modeldaten funktionieren nicht?

Hallo,

ich wollte ein Custom Kisten Model in MC hinzufügen. Dabei hab ich bei meiner Dabei:

magic_chest.json

das hier eingegeben:

{

   "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",

   "textures": {

       "#0": "blocks/magic_chest_front",

       "#1": "blocks/magic_chest_side",

      "#2": "blocks/magic_chest_top",

      "#3": "blocks/magic_chest_bottom"

   },

   "elements": [

       {

           "name": "Cube",

           "from": [ 0.0, 0.0, 0.0 ],

           "to": [ 16.0, 16.0, 16.0 ],

           "faces": {

               "north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },

               "east": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },

               "south": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },

               "west": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },

               "up": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },

               "down": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }

           }

       }

   ],"display": {

   "thirdperson_lefthand": {"rotation": [ 0, 0, 0], "translation": [ 0, 0, 0 ], "scale": [ 0.5, 0.5, 0.5 ]},

   "thirdperson_righthand": {"rotation": [ 0, 0, 0], "translation": [ 0, 0, 0 ], "scale": [ 0.5, 0.5, 0.5 ]},

   "firstperson_lefthand": {"rotation": [ 0, 45, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.5, 0.5, 0.5 ]},

   "firstperson_righthand": {"rotation": [ 0, 45, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.5, 0.5, 0.5 ]},

   "gui": {"rotation": [ 30, 45, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.65, 0.65, 0.65 ]},

   "ground": {"rotation": [ 0, 0, 180], "translation": [ 0, 0, 0 ], "scale":[1,1,1]},

   "head": { "translation": [ 0, -43, 0 ], "scale": [ 1.75, 1.75, 1.75 ]},

   "fixed": {"rotation": [ 0, 0, 0], "translation": [ 0, 0, 0 ], "scale":[1,1,1]}

}

}

Jedoch bekomme ich immer ein Missing Texture Block :/

kann mir bei meinem Problem jemand helfen?

Danke im Voraus :D

Minecraft
0 Antworten

Meistgelesene Fragen zum Thema JSON-Datei