解决JSON格式的解析数据问题

时间:2017-12-03 16:01:51

标签: java json javax.json

我有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。

1 个答案:

答案 0 :(得分:0)

global_rating看起来是一个int,不是吗?试试这个:

int global_rating = accountIdJson.getInt("global_rating");