java get请求解析 json
在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/fh2X 著作权归作者所有。请勿转载和采集!