i具有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 的值, Battles ,但是此代码引发异常
Exception in thread "main" java.lang.ClassCastException:
org.glassfish.json.JsonNumberImpl$JsonIntNumber cannot be cast to
javax.json.JsonString
在最后一行,但我不明白为什么。我做错了什么?有人可以暗示我吗?
thx。
global_rating
看起来是int,不是吗?尝试以下操作:
int global_rating = accountIdJson.getInt("global_rating");