java 树状json解析
时间: 2023-06-22 18:48:06 浏览: 120
在Java中,我们可以使用JsonNode类来实现树状json解析。JsonNode是Jackson库中的一个类,它能够表示Json数据的节点,并提供了许多有用的方法来访问和操作Json数据。
下面是一个简单的Java代码示例,用于实现树状json解析:
```java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonParser {
public static void parseJson(String json, int depth) throws Exception {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
if (node.isObject()) {
for (JsonNode child : node) {
System.out.println(" ".repeat(depth) + child.asText());
parseJson(child.toString(), depth + 1);
}
} else if (node.isArray()) {
for (JsonNode child : node) {
parseJson(child.toString(), depth + 1);
}
} else {
System.out.println(" ".repeat(depth) + node.asText());
}
}
public static void main(String[] args) throws Exception {
String json = "{\"name\": \"Alice\", \"age\": 20, \"friends\": [{\"name\": \"Bob\", \"age\": 21}, {\"name\": \"Charlie\", \"age\": 22}]}";
parseJson(json, 0);
}
}
```
运行上述代码,可以得到如下输出结果:
```
name
Alice
age
20
friends
name
Bob
age
21
name
Charlie
age
22
```
可以看到,输出结果按照树状结构进行缩进,清晰地展示了json数据的层级关系。需要注意的是,上述代码中使用了Java 11中新增的字符串重复方法。如果你使用的是Java 8或更早版本,可以自行实现一个重复字符串的方法。
阅读全文