Проблема здесь в том, что ваш второй вызов search()
вызывает исключение, вы проглатываете исключение в блоке перехвата, поэтому метод main
завершается ошибкой и завершается, прежде чем он сможет распечатать latest_tags.get(0)
, следовательно, вы видите только выход из этого вызова: System.out.println(authors.get(0))
.
Ответ на ваш первый вызов GitHub API выглядит следующим образом:
{
"total_count": 6345,
"incomplete_results": false,
"items": [...]
}
Этот является единственным JSON-объектом, поэтому этот вызов успешен: new JSONObject(response.toString())
.
Однако ответ на ваш второй вызов GitHub API выглядит следующим образом:
[
{
"name": "testng-6.9.5",
"zipball_url": "https://api.github.com/repos/cbeust/testng/zipball/testng-6.9.5",
"tarball_url": "https://api.github.com/repos/cbeust/testng/tarball/testng-6.9.5",
"commit": {
"sha": "ef2d1199abff4e1b8fa4b1148c1314e776d7a044",
"url": "https://api.github.com/repos/cbeust/testng/commits/ef2d1199abff4e1b8fa4b1148c1314e776d7a044"
},
"node_id": "MDM6UmVmNzQ1NzQ5OnRlc3RuZy02LjkuNQ=="
},
...
]
Итак, это массив «объектов» JSON (обратите внимание на то, как он заключен в квадратные скобки) и, следовательно, этот вызов: new JSONObject(response.toString())
завершается неудачно с ...
Value [...] of type org.json.JSONArray cannot be converted to JSONObject
Итак, это объясняет, почему вы видите только свой первый ожидаемый результат. Теперь, чтобы исправить проблему, вы можете просто заменить эти строки ...
JSONObject obj_JSONObject = new JSONObject(response.toString());
return obj_JSONObject.toString();
... с этим:
return response.toString()
И, для полноты, предоставьте некоторую реализацию в блоке catch в вашем методе main
, чтобы вас не вводило в заблуждение проглоченное исключение.