JSON格式的解析数据麻烦



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");

最新更新