java获取json对象中的值
时间: 2023-10-02 07:08:24 浏览: 112
可以使用Java的JSON库,如Jackson或Gson,来解析JSON对象并获取值。以下是一个示例代码:
```
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
// 示例JSON字符串
String jsonStr = "{\"name\":\"John Smith\",\"age\":30}";
// 初始化ObjectMapper对象
ObjectMapper mapper = new ObjectMapper();
// 将JSON字符串解析成JsonNode对象
JsonNode jsonNode = mapper.readTree(jsonStr);
// 获取属性值
String name = jsonNode.get("name").asText();
int age = jsonNode.get("age").asInt();
```
以上代码使用Jackson库将JSON字符串解析成JsonNode对象,然后使用get方法获取属性值。如果使用Gson库,可以使用类似的方法来解析JSON字符串并获取属性值。
相关问题
java 获取 json对象的值
要在Java中获取JSON对象的值,你可以使用JSON库,如Jackson或Gson。以下是使用Jackson库的示例代码:
```java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
try {
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonString);
String name = jsonNode.get("name").asText();
int age = jsonNode.get("age").asInt();
String city = jsonNode.get("city").asText();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这个例子中,我们首先创建一个包含JSON字符串的变量 `jsonString`。然后,我们使用`ObjectMapper`类从JSON字符串中读取树状结构的`JsonNode`对象。
通过使用`get()`方法并指定JSON属性的名称,我们可以获取对应属性的值。根据值的类型,我们可以使用`asText()`、`asInt()`等方法将其转换为相应的Java类型。
上述代码输出以下结果:
```
Name: John
Age: 30
City: New York
```
请注意,这只是使用Jackson库的一种方法。如果你使用其他JSON库,可能会有不同的用法和API。
java获取json对象中的值和key
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();
```