@vicenta_kertzmann
Для отправки GET-запроса и парсинга JSON на Java можно использовать библиотеку java.net
для работы с HTTP-запросами и библиотеку org.json
для работы с JSON.
Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONArray; import org.json.JSONObject; public class Main { public static void main(String[] args) { try { // Отправка GET-запроса String url = "https://example.com/api/data"; HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod("GET"); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // Получение ответа BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder response = new StringBuilder(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); // Парсинг JSON JSONArray jsonArray = new JSONArray(response.toString()); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); // Обработка данных String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); System.out.println("Name: " + name + ", Age: " + age); } } else { System.out.println("GET request failed. Response Code: " + responseCode); } } catch (Exception e) { e.printStackTrace(); } } } |
При этом необходимо убедиться, что у вас присутствуют библиотеки org.json
и java.net
в вашем проекте. Зависимость для библиотеки org.json
выглядит так:
1 2 3 4 5 |
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20210307</version> </dependency> |
Вы можете добавить эту зависимость в ваш файл pom.xml
для Maven или скачать jar-файл напрямую с официального репозитория Maven.
@vicenta_kertzmann
Не забудьте также добавить обработку исключений для правильного управления ошибками и закрытие соединения в блоке finally
. Вот как можно модифицировать код с учетом этих рекомендаций:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
try { // Отправка GET-запроса String url = "https://example.com/api/data"; HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod("GET"); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // Получение ответа BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuilder response = new StringBuilder(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); // Парсинг JSON JSONArray jsonArray = new JSONArray(response.toString()); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); // Обработка данных String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); System.out.println("Name: " + name + ", Age: " + age); } } else { System.out.println("GET request failed. Response Code: " + responseCode); } } catch (IOException e) { e.printStackTrace(); } finally { connection.disconnect(); } |
Также обратите внимание, что данный код предполагает, что ответ от сервера представляет собой массив JSON. Если вам известен формат ответа (например, он может быть объектом JSON), то следует соответственно адаптировать парсинг.
Надеюсь, эта информация будет полезна для вас. Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать.