Mit Gson können Sie Schlüsselnamen von JSON-Objekten abrufen
Ich habe ein JSON-Objekt, von dem ich die Schlüsselnamen abrufen und in einer ArrayList speichern möchte. Ich habe den folgenden Code verwendet
jsonData(String filename) {
JsonParser parser = new JsonParser();
JsonElement jsonElement = null;
try {
jsonElement = parser.parse(new FileReader(filename));
} catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JsonObject jsonObject = jsonElement.getAsJsonObject();
int i = 0;
for (Entry<String, JsonElement> entry : jsonObject.entrySet()) {
String key = entry.getKey();
JsonElement value = entry.getValue();
keys.add(key);
i++;
}
nKeys = i;
}
Wenn ich diesen Code mit einem einfachen JSON-Objekt verwende
{
"age":100,
"name":"mkyong.com",
"messages":["msg 1","msg 2","msg 3"]
}
Das funktioniert gut. Alter, Name und Nachrichten (nicht die Werte) werden meiner ArrayList hinzugefügt. Einmal versuche ich, denselben Code mit einem komplexeren JSON wie diesem zu verwenden
{"widget": {
"debug": "on",
"window": {
"title": "Sample Konfabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}}
Ich bekomme nur den Root-Schlüssel. Kann mich jemand damit in die richtige Richtung weisen?
Vielen Dank an alle!