在 Java 中,可以使用很多库来解析 JSON 数据,如 Jackson、Gson、FastJson 等。以下是使用 Jackson 库进行 JSON 解析的示例:

  1. 添加依赖

在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.4</version>
</dependency>
  1. 发送 GET 请求并获取响应数据

可以使用 Java 的 HttpURLConnection 或者第三方库如 OkHttp 发送 GET 请求并获取响应数据,这里以 HttpURLConnection 为例:

URL url = new URL('http://example.com/data.json');
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod('GET');
conn.connect();

if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    StringBuilder response = new StringBuilder();
    while ((line = reader.readLine()) != null) {
        response.append(line);
    }
    reader.close();
    String json = response.toString();
}
  1. 解析 JSON 数据

使用 Jackson 库的 ObjectMapper 类可以将 JSON 字符串转换成 Java 对象:

ObjectMapper mapper = new ObjectMapper();
MyData data = mapper.readValue(json, MyData.class);

其中,MyData 是一个 Java 类,用于表示 JSON 数据的结构,需要与 JSON 数据的结构一致。例如,如果 JSON 数据是这样的:

{
  'name': 'John',
  'age': 30,
  'address': {
    'street': '123 Main St',
    'city': 'Anytown',
    'state': 'CA'
  },
  'phoneNumbers': [
    {
      'type': 'home',
      'number': '555-555-1234'
    },
    {
      'type': 'work',
      'number': '555-555-5678'
    }
  ]
}

那么可以定义一个类来表示这个结构:

public class MyData {
    private String name;
    private int age;
    private Address address;
    private List<PhoneNumber> phoneNumbers;

    // getters and setters
}

public class Address {
    private String street;
    private String city;
    private String state;

    // getters and setters
}

public class PhoneNumber {
    private String type;
    private String number;

    // getters and setters
}

然后就可以使用 ObjectMapper 将 JSON 字符串转换成 MyData 对象了:

MyData data = mapper.readValue(json, MyData.class);
Java GET 请求解析 JSON 数据:使用 Jackson 库

原文地址: https://www.cveoy.top/t/topic/n9Ms 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录