调用第三方接口,返回一堆json,我只想取得里面的某一个属性,但是返回的比较复杂,无法直接拿到属性,格式类似于这样:

{"video":{"id":"29BA6ACE7A9427489C33DC5901307461","title":"体验课01","desp":"","tags":" ","duration":503,"category":"07AD1E11DBE6FDFC","image":"http://2.img.bokecc.com/comimage/0DD1F081022C163E/2016-03-09/29BA6ACE7A9427489C33DC5901307461-0.jpg","imageindex":0,"image-alternate":[{"index":0,"url":"http://2.img.bokecc.com/comimage/0DD1F081022C163E/2016-03-09/29BA6ACE7A9427489C33DC5901307461-0/0.jpg"},{"index":1,"url":"http://2.img.bokecc.com/comimage/0DD1F081022C163E/2016-03-09/29BA6ACE7A9427489C33DC5901307461-0/1.jpg"},{"index":2,"url":"http://2.img.bokecc.com/comimage/0DD1F081022C163E/2016-03-09/29BA6ACE7A9427489C33DC5901307461-0/2.jpg"},{"index":3,"url":"http://2.img.bokecc.com/comimage/0DD1F081022C163E/2016-03-09/29BA6ACE7A9427489C33DC5901307461-0/3.jpg"}]}}

其实我想获得“duration”这个属性,在网上搜索如何解析复杂json,五花八门,用什么技术的都有,但是都只用一种技术,依我看,几种技术组合起来用才是效率最高

这里的jsonObject用的是net.sf.json.JSONObject,jar包为json-lib-2.2.2-jdk13.jar;Gson所用到的jar包为gson-2.3.1.jar,其中json-lib-2.2.2-jdk13.jar不能单独使用,必须配合其他jar

下面代码为JSONObject与Gson的组合使用获取“duration”属性,将服务器返回的json作为参数传入即可

//解析json数据
    public static int parseJson(String str){
        JSONObject jObj = JSONObject.fromObject(str);
        Object obj=jObj.getJSONObject("video");
        String s2=obj.toString();
        Gson gson=new Gson();
        Map map=gson.fromJson(s2, Map.class);
        Number num=(Number)map.get("duration");
        return num.intValue();
    }

如果你想解析json里面的嵌套json数组,解决方法可参考这篇博客(http://blog.csdn.net/lhfeng/article/details/7398880)

在这里还有一个问题要提一下,由于duration属性是double类型的,取出来数值是503.0,我不想带小数点,所以我直接在下划线部分这样写

Integer num=(Integer)map.get("duration");

结果报错了,报java.lang.Double cannot be cast to java.lang.Integer  ,Integer属于不可更改类型,而且Double和Integer没有任何继承关系,当然不能这样转换。

注:java.lang.Number是Integer,Double的父类,所以要写成样 Number num=(Number)map.get("duration");最后再num.intValue()就可以去掉小数点了

这个错误可参考这篇博客(http://blog.sina.com.cn/s/blog_794d4bfd0102uz4i.html)

复杂json解析(json里面嵌套json)相关推荐

  1. python解析多层嵌套json_Python爬虫解析多个嵌套JSON,多级,json

    Python爬虫解析多级嵌套json 最近刚接触Python爬虫,正好最近肺炎在全国蔓延,所以准备从网站爬取肺炎实时数据,并解析自己想要的数据.获取json数据网址为 https://m.look.3 ...

  2. swift php json解析,Swift 4.0 | JSON数据的解析和编码

    文 / 菲拉兔 自己撸的图 要求: Platform: iOS8.0+ Language: Swift4.0 Editor: Xcode9 [问题补充2017-09-28] 最近我发现了一个问题:在S ...

  3. jsp java json解析,jsp中获取json字符串,并解析

    JqueryDemo1 function showData() { var str='{ "name": "John" }';//json标准格式 var ob ...

  4. JSON解析实战篇:JSON数组中含JSON数组

    少年最好的地方就是:嘴里说着要放弃,心里却都憋着一口气. 前言 关于JSON和本文中所用的Fastjson介绍,可以查看我的这两篇博客: JSON简介:什么是JSON -> https://bl ...

  5. android 多层json,Android json解析:根据嵌套key值逐层获取最底层数据

    需求:根据预先定义好的嵌套的key值一层层获取json最底层数据 主函数里的代码 String json1="{"code":0,"data":{&q ...

  6. json解析天气预报java_JAVA操作json实战--获得天气预报信息

    国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data ...

  7. python post json 解析失败_python中json对象转换出错解决方法

    今天在使用python中的json转换碰到一个问题: 接收一个post的json字符串: s={"username":"admin","passwor ...

  8. json解析嵌套jasn语句报错_jasn语法小记 - hiwill的个人空间 - OSCHINA - 中文开源技术交流社区...

    json是JavaScript对象表示法,是轻量级的文本数据交换格式,独立于编程语言,具有自我描述性,更易理解. json是有层级结构的纯文本,易读,可通过JavaScript进行解析. 语法: 1, ...

  9. 迈克尔 杰克逊mv_杰克逊JSON解析错误– UnrecognizedPropertyException:无法识别的字段,未标记为可忽略[已解决]...

    迈克尔 杰克逊mv 在解析从我们的一个RESTful Web服务接收到的JSON字符串时,我收到此错误"线程" main"中的异常com.fasterxml.jackso ...

  10. 杰克逊JSON解析错误-UnrecognizedPropertyException:无法识别的字段,未标记为可忽略[已解决]...

    在解析从我们的一个RESTful Web服务接收到的JSON字符串时,我收到此错误"线程" main"中的异常com.fasterxml.jackson.databind ...

最新文章

  1. java线程多栈会溢出_JVM 栈(stack)溢出案例
  2. TCP协议详解----Linux学习笔记
  3. Nginx 配置TCP负载均衡
  4. 信号与槽是如何实现的_苹果iPhone 12信号仍弱?网友反馈打不进电话需重启解决...
  5. sftp方式从windows上传文件到Linux服务器
  6. html项目_Python Selenium项目实战之添加发送HTML测试报告邮件!
  7. 找不到或是无法加载主类 不是原创
  8. 桌面打不开计算机控制面板,右键桌面nvidia控制面板打不开的解决方法 - 系统家园...
  9. PWM、PPM、SBUS、DSM2这四种协议区别
  10. plotyy函数_plotyy函数参数设置
  11. tp801单板微型计算机英文全称,TP801型微型计算机在低压铸造与差压铸造液面加压控制系统中的应用.pdf...
  12. android.media.MediaCodec$CodecException: Error 0xfffffc0e
  13. 盛语小智教育机器人是骗人的_盛语小智机器人骗局揭露【是不是真的有效】多久可以见...
  14. 孤岛双馈风电机组数学模型matlab,大型变速双馈风电机组动态稳定性仿真分析
  15. 只有程序员才能看懂的16张高端漫画
  16. [轻笔记]多个第三方库typedef重定义冲突
  17. 别把大数据夸上天,请留意《头号玩家》剧情里给你留下的忠告
  18. 海南三亚森林半岛项目简介
  19. 项目二:使用交换机构建简单局域网——使用交换机构建局域网
  20. 后台管理权限管理(二) 权限按钮控制的实现

热门文章

  1. 【三维路径规划】基于matlab改进差分算法多无人机协同三维路径规划【含Matlab源码 169期】
  2. 【CVRP】基于matlab遗传算法求解带容量的车辆路径规划问题【含Matlab源码 162期】
  3. SPSS 虚拟变量(图文+数据集)【SPSS 038期】
  4. python: 图像的维度、图像读写
  5. html标签asp/,HTML标签及ASP函数速查表
  6. iOS开发-获取rootViewController的正确方式
  7. 获取代理电脑的https证书方法
  8. Python手动安装 package
  9. Android Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
  10. RHEL 6.3的yum不小心被删除了。如何恢复?