2015-04-27 3 views
-3

Я получил этот выход здесь:Получение значений из JSON объекта

{ 
    "hi:{ 
     "id":35445129, 
     "name":"Hi", 
     "profileIconId":28, 
     "revisionDate":1428718587000, 
     "summonerLevel":30 
    } 
} 

из апи Riot Games.

Я пытался использовать этот код здесь:

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

попытаться распечатать значение для ид, но я получаю это исключение, когда я запускаю его:

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

Видимо ключ "Привет" не имеет никакого значения. Кроме того, ваш JSON, похоже, находится в неправильном формате. Используйте [этот сайт] (http://jsonformatter.curiousconcept.com/) для дальнейшей проверки. –

ответ

0

Ваш JSON не так вот почему исключение приходит. Истед от {

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 
    } 
} 
Смежные вопросы