如果有一个值为“{ "from": "en", "to": "zh", "trans_result": [ { "src": "hello", "dst": "你好" } ] }”的JSON,怎么使用Java提取“trans_result"下的“dst"?
时间: 2023-06-28 13:10:06 浏览: 139
可以使用 Java 中的 JSON 解析库来提取 JSON 中的数据,例如常用的有 Jackson、Gson 等。
假设使用 Jackson 库,可以按照以下步骤提取 "trans_result" 下的 "dst":
1. 将 JSON 字符串转换为 Jackson 的 JsonNode 对象:
```java
String jsonString = "{ \"from\": \"en\", \"to\": \"zh\", \"trans_result\": [ { \"src\": \"hello\", \"dst\": \"你好\" } ] }";
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonString);
```
2. 使用 JsonNode 对象的 get 方法按照层级结构获取到 "trans_result" 数组节点:
```java
JsonNode transResultNode = jsonNode.get("trans_result");
```
3. 遍历 "trans_result" 数组节点,获取到每个节点的 "dst" 属性值:
```java
for (JsonNode node : transResultNode) {
String dst = node.get("dst").asText();
System.out.println(dst); // 输出:你好
}
```
以上代码可以提取出 "trans_result" 数组中每个节点的 "dst" 属性值,如果只需要第一个节点的值,可以直接使用以下代码获取:
```java
String dst = transResultNode.get(0).get("dst").asText();
System.out.println(dst); // 输出:你好
```
阅读全文