この JSON ファイルを解析するために GSON を使用しています。
{
"database" : {
"source" : "google",
"items" : [
{"title" : "hello world",
"id" : "id_hello_world"},
{"title" : "goodbye world",
"id" : "id_goodbye_world"}
]
}
}
どちらを読み込んだかString jsonLine
それを解析してすべての値を出力しようとしていますがClassCastException
、
JsonObject source = database.getAsJsonObject("source")
ライン。
データの検索が間違っていると思います。これを使用して検索して出力します:
JsonElement jelement = new JsonParser().parse(jsonLine);
JsonObject jobject = (JsonObject) jelement;
JsonObject database = jobject.getAsJsonObject("database"); //Get Database
JsonObject source = database.getAsJsonObject("source"); //Get Source
System.out.println("Source: " + source.toString()); //Print source
JsonArray items = database.getAsJsonArray("items"); //Get items array
for(int i=0; i< items.size(); i++){ //for every item
JsonObject item = (JsonObject) items.get(i); //Select item i
JsonObject title = (JsonObject) item.getAsJsonObject("title");
JsonObject id = (JsonObject) item.getAsJsonObject("id");
System.out.println("Item " + i + " title : " + title.toString() + ", id : " + id.toString());
}
誰かが私のコードを修正できれば完璧です。これを使用してこれを行う他の簡単な方法があることは知っていますがGSON.fromJSON(jsonLine, Wrapper.class)
、この方法でも行うことを学ぼうとしています。助けてくれてありがとう!