我有JSON格式的数据。例如:
{
"status": "ok",
"meta": {
"count": 1
},
"data": {
"531446": {
"global_rating": 6595,
"statistics": {
"random": {
"spotted": 14379,
"xp": 9087316,
"draws": 238,
"battles": 15034,
"wins": 7614,
"avg_damage_assisted_track": 42.94
}
}
}
}
}
对于解析我已经编写了下一个代码。但它没有用。
JsonReader jsonReader = Json.createReader(new FileInputStream("F:\\Test.json"));
JsonObject jsonObject = jsonReader.readObject();
jsonReader.close();
int acc_id = 531446;
JsonObject dataJson = jsonObject.getJsonObject("data");
System.out.println("data:" + dataJson);
JsonObject accountIdJson = dataJson.getJsonObject(String.valueOf(acc_id));
System.out.println(" accountIdJson:"+accountIdJson);
String globalRatingJson = accountIdJson.getString("global_rating");
我试图获得 global_rating 和战斗的价值,但此代码会抛出异常
Exception in thread "main" java.lang.ClassCastException:
org.glassfish.json.JsonNumberImpl$JsonIntNumber cannot be cast to
javax.json.JsonString
在最后一行,但我不明白为什么。我做错了什么?有人能暗示我吗?
THX。
答案 0 :(得分:0)
global_rating
看起来是一个int,不是吗?试试这个:
int global_rating = accountIdJson.getInt("global_rating");