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);

 import java.util.List;

 import com.google.gson.Gson;

 public class MyObject {
String name;
List<MyObject> child;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<MyObject> getChild() {
return child;
}
public void setChild(List<MyObject> child) {
this.child = child;
} public static void main(String[] args) {
String jsonStr = "{'name':'111','child':[{'name':'222','child':[{'name':'333'}]},{'name':'2221'}]}";
Gson gson = new Gson();
MyObject obj = gson.fromJson(jsonStr,MyObject.class);
System.out.println(obj.getChild().get(0).getName()); // --222
System.out.println(obj.getChild().get(1).getName()); // --222
System.out.println(obj.getChild().get(0).getChild().get(0).getName()); // --333
}
}

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

JAVA如何解析多层json数据的更多相关文章

  1. C#解析多层Json数据

    [事件回顾] 今天在做一个小项目的时候,想获取一下位置,IP地址,然后随便在网上找了一个api调用 https://apis.map.qq.com/ws/location/v1/ip 数据如下: 如果 ...

  2. Gson解析复杂Json数据

    背景                                                                   json是一种数据格式,便于数据传输.存储.交换. gson是 ...

  3. 解析天气预报JSON数据

    解析天气预报JSON数据 JSON字符串 constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'"status" ...

  4. mormot解析天气预报JSON数据

    mormot解析天气预报JSON数据 uses SynCommons; constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'&qu ...

  5. java android使用Gson解析泛型json数据

    那就直接开始吧. 在我们获取服务器返回的json数据有时候会出现这种情况,比如: {"body":{"attrName":"feed",&q ...

  6. Java解析复杂JSON数据的一种方法

    1.需解析JSON数据: { "code": 0, "message": "success", "sid": " ...

  7. 【转】java 解析多层json

    java分别解析下面两个json字符串 package jansonDemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjso ...

  8. Java:HttpPost 传输Json数据过长使用HttpServletRequest解析

    直接上代码 /** * 测试生成json数据 */ @Test public void synYxGoodsInfoTest() { try { String url = "http://1 ...

  9. 模拟QQ侧滑控件 实现三种界面切换效果(知识点:回调机制,解析网络json数据,fragment用法等)。

    需要用到的lib包 :解析json  gson包,从网络地址解析json数据成String字符串的异步网络解析工具AsyncHttpClient等 下载地址:点击下载 Xlistview 下拉上拉第三 ...

随机推荐

  1. nyoj 129 树的判定

    并查集+欧拉 树的判定 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 A tree is a well-known data structure that is e ...

  2. 射频识别技术漫谈(14)——S50与S70存取控制【worldsing笔记】

    存取控制指符合什么条件才能对卡片进行操作. S50和S70的块分为数据块和控制块,对数据块的操作有"读"."写"."加值"."减值 ...

  3. 本地或者是koala软件编译less文件为css

    背景: 事情的起因是这般的,平时工作是在线上办公,样式是使用less来写,于是乎,这样我从线上download下来的less文件无法直接在自己的本地环境运行.有一个问题就是我要把less文件先编译成c ...

  4. 【转】bt协议的详细分析

    转自:https://baoz.net/bt-protocol/ 一 BT系统的组成结构 1 普通的Web服务器:        例如Apache或IIS服务器 2 一个静态的种子文件:     即. ...

  5. cocos2d 中加入显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)

    在 cocos2d 中有三个类能够在层或精灵中加入文字: CCLabelTTF CCLabelBMFont CCLabelAtlas      CCLabelTTF CCLabelTTF 每次调用 s ...

  6. Android中由IP地址查询经纬度坐标的实例

    大家都知道,根据IP地址就可以知道它所在的具体位置,在Android中同样可以由IP地址得到它的位置,即具体的地理经纬度坐标. 本文就直接以代码的方式演示如何根据IP地址查询地理经纬度坐标位置,下面的 ...

  7. MySQL to Redis

    [TOC] 简介 使用mysql2redis可以非常便捷的将mysql中的数据导出到redis中去, 通常是需要一个select语句即可实现. 软件安装 // 安装apr + apr-util $ w ...

  8. android小笔记

    1.启动其他应用程序 Intent launchIntent = getPackageManager().getLaunchIntentForPackage(currentAppInfo.getPac ...

  9. ulimit 命令详解

      Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制. 下面我把某linux用 ...

  10. careercup-中等难度 17.9

    17.9 设计一个方法,找出任意指定单词在一本书中的出现频率. 解法: 1 单次查询 遍历这本书的每个单词,计算给定单词出现的次数.时间复杂度O(n),我们无法继续优化它,因为书中的每个单次都需要访问 ...