java获取树状json里面所有数据,详细代码
时间: 2023-12-14 13:37:34 浏览: 70
java 获取json网页数据
3星 · 编辑精心推荐
假设有一下这样的树状JSON数据:
```json
{
"name": "root",
"children": [
{
"name": "child1",
"children": [
{
"name": "grandchild1",
"children": []
},
{
"name": "grandchild2",
"children": [
{
"name": "great-grandchild1",
"children": []
}
]
}
]
},
{
"name": "child2",
"children": []
}
]
}
```
可以使用递归的方式遍历整个JSON数据,在每个节点处获取数据。以下是一个简单的Java代码示例:
```java
import org.json.*;
public class JsonTreeTraversal {
public static void main(String[] args) throws JSONException {
String jsonStr = "{\"name\":\"root\",\"children\":[{\"name\":\"child1\",\"children\":[{\"name\":\"grandchild1\",\"children\":[]},{\"name\":\"grandchild2\",\"children\":[{\"name\":\"great-grandchild1\",\"children\":[]}]}]},{\"name\":\"child2\",\"children\":[]}]}";
JSONObject jsonObj = new JSONObject(jsonStr);
traverseJsonTree(jsonObj);
}
public static void traverseJsonTree(JSONObject jsonObj) throws JSONException {
System.out.println(jsonObj.getString("name"));
JSONArray children = jsonObj.getJSONArray("children");
for(int i = 0; i < children.length(); i++) {
traverseJsonTree(children.getJSONObject(i));
}
}
}
```
该程序首先将JSON字符串解析成一个JSONObject对象,然后使用递归的方式遍历整个JSON树,并在每个节点处打印出节点的名称。
阅读全文