java获取json对象中的值和key
时间: 2023-05-04 14:02:23 浏览: 303
Java获取JSON对象中的值和键可以使用JSON库,JSON库是Java中的一种解析JSON数据的类库。常用的JSON库有Gson和Jackson。
使用Gson库:
1. 导入Gson库的依赖:
```
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
```
2. 解析JSON字符串
```
String jsonStr = "{ \"name\": \"张三\", \"age\": 18, \"address\": { \"province\": \"广东\", \"city\": \"深圳\" } }";
Gson gson = new Gson();
JsonElement jsonElement = gson.fromJson(jsonStr, JsonElement.class);
```
3. 获取JSON对象中的值和键
```
JsonObject jsonObject = jsonElement.getAsJsonObject();
String name = jsonObject.get("name").getAsString();
int age = jsonObject.get("age").getAsInt();
JsonObject address = jsonObject.get("address").getAsJsonObject();
String province = address.get("province").getAsString();
String city = address.get("city").getAsString();
```
使用Jackson库:
1. 导入Jackson库的依赖
```
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.2</version>
</dependency>
```
2. 解析JSON字符串
```
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonStr);
```
3. 获取JSON对象中的值和键
```
JsonNode nameNode = jsonNode.get("name");
String name = nameNode.asText();
JsonNode ageNode = jsonNode.get("age");
int age = ageNode.asInt();
JsonNode addressNode = jsonNode.get("address");
JsonNode provinceNode = addressNode.get("province");
String province = provinceNode.asText();
JsonNode cityNode = addressNode.get("city");
String city = cityNode.asText();
```