我在这里收到了这个输出:
{
"hi:{
"id":35445129,
"name":"Hi",
"profileIconId":28,
"revisionDate":1428718587000,
"summonerLevel":30
}
}
来自Riot Games api。
我试着在这里使用这段代码:
GetRequest gr = Unirest.get("https://na.api.pvp.net/api/lol/na/v1.4/
summoner/by-name/hi?api_key={this is my key that I won't put in}");
HttpResponse<JsonNode> node = gr.asJson();
JSONObject obj = new JSONObject(node.getBody());
System.out.println(obj.getJSONObject(name).getInt("id"));
尝试打印出id的值,但是当我运行它时会出现这个异常:
Exception in thread "main" org.json.JSONException: JSONObject["hi"] not found.
at org.json.JSONObject.get(JSONObject.java:459)
at org.json.JSONObject.getJSONObject(JSONObject.java:558)
at thing.Main.main(Main.java:38)
任何人都知道我做错了什么?
谢谢:)
答案 0 :(得分:0)
你的JSON是错误的,这就是异常即将到来的原因。不论是{
答案 1 :(得分:0)
你的JSON错了。看看你的异常告诉你的事情:
Exception in thread "main" org.json.JSONException: JSONObject["hi"] not found.
这是因为您忘记了hi
上的结束双引号。
这就是你所拥有的:
{
"hi:{
"id":35445129,
"name":"Hi",
"profileIconId":28,
"revisionDate":1428718587000,
"summonerLevel":30
}
}
但它应该是:
{
"hi":{
"id":35445129,
"name":"Hi",
"profileIconId":28,
"revisionDate":1428718587000,
"summonerLevel":30
}
}