Java GET 请求解析 JSON 数据:使用 Jackson 库
在 Java 中,可以使用很多库来解析 JSON 数据,如 Jackson、Gson、FastJson 等。以下是使用 Jackson 库进行 JSON 解析的示例:
- 添加依赖
在 pom.xml 中添加以下依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.4</version>
</dependency>
- 发送 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();
}
- 解析 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);
原文地址: https://www.cveoy.top/t/topic/n9Ms 著作权归作者所有。请勿转载和采集!