JAVA如何解析多层json数据

Posted 造梦者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA如何解析多层json数据相关的知识,希望对你有一定的参考价值。

1. 使用标准的Json对象,如org.json.JSONObject json = new org.json.JSONObject(yourJsonString);然后通过get(keyString)逐个解析 
2. 构造一个类MyObject,根据你提出的问题,其中添加 String name,List<MyObject> child, 两个属性,增加getter setter 方法,通过com.google.gson.Gson进行解析。步骤如下: 
String jsonStr = "{‘name‘:‘111‘,‘child‘:[{‘name‘:‘222‘,‘child‘:[{‘name‘:‘333‘}]},{‘name‘:‘2221‘}]}"; 
Gson gson = new Gson(); 
MyObject obj = gson.fromJson(jsonStr,MyObject.class); 

 1 import java.util.List;
 2 
 3 import com.google.gson.Gson;
 4 
 5 public class MyObject {
 6     String name;
 7     List<MyObject> child;
 8     public String getName() {
 9         return name;
10     }
11     public void setName(String name) {
12         this.name = name;
13     }
14     public List<MyObject> getChild() {
15         return child;
16     }
17     public void setChild(List<MyObject> child) {
18         this.child = child;
19     }
20     
21     public static void main(String[] args) {
22          String jsonStr = "{‘name‘:‘111‘,‘child‘:[{‘name‘:‘222‘,‘child‘:[{‘name‘:‘333‘}]},{‘name‘:‘2221‘}]}";
23          Gson gson = new Gson();
24          MyObject obj = gson.fromJson(jsonStr,MyObject.class);
25          System.out.println(obj.getChild().get(0).getName()); // --222
26          System.out.println(obj.getChild().get(1).getName()); // --222
27          System.out.println(obj.getChild().get(0).getChild().get(0).getName()); // --333
28     }
29 }

引自http://www.iteye.com/problems/88002  flashsnow 的回答,非常感谢

以上是关于JAVA如何解析多层json数据的主要内容,如果未能解决你的问题,请参考以下文章

java怎么组装多层嵌套json

反序列化多层嵌套json实体

layui如何解析多层嵌套json数据

java怎么解析多层嵌套的json得到每个元素

如何用Python解析多层嵌套的JSON?

python中jsonpath模块,解析多层嵌套的json数据