JSON中getInt()和optInt()的区别

原创 2016年05月31日 17:21:13

       最近在用org.json这个包解析json的时候,发现谷歌提供两种不同的数据类型获取方法,比如说针对Int类型,提供了getInt()和optInt()两种方式,谷歌文档中的说明如下:

这里写图片描述

这里写图片描述

那么这两者有什么区别呢?我们来看下源码:

public int getInt(String key) throws JSONException {  
    Object object = this.get(key);  
    try {  
        return object instanceof Number ? ((Number) object).intValue()  
                : Integer.parseInt((String) object);  
    } catch (Exception e) {  
        throw new JSONException("JSONObject[" + quote(key)  
                + "] is not an int.");  
    }  
}  
public int optInt(String key) {  
    return this.optInt(key, 0);  
}  

不难发现,二者区别如下:

getInt()取值不正确或者类型不正确时会抛出异常,必须用try catch或者throw捕获

optInt()取值不正确时则会试图进行转化或者返回默认值,不会抛出异常

安卓开发高级技术交流QQ群:108721298 欢迎入群

微信公众号:mobilesafehome

(本公众号支持投票)

Android安全技术大本营

版权声明:本文为博主原创文章,未经博主允许不得转载;来自http://blog.csdn.net/mynameishuangshuai

相关文章推荐

JSONObject对象的optXXX和getXXX的区别

今天在用org.json这个包解析json的时候 有两个方法getInt()和optInt() 把源代码拿出来一下 getInt("key")  取值 不存在 或者类...

org.json.JSONObject的optXXX方法

JSONObject有很多optXXX方法,比如optBoolean, optString, optInt...他们的意思是,如果这个jsonObject有这个属性,则返回这个属性,否则返回一个默认值...

fastjson使用(一) -- 最常用的功能[构造和解析JSON]

阿里的开源JAVA的JSON库fastjson的使用。

JSON入门——JSON的组成和解析

用JSON也有挺长时间了,最近做了个小软件,需要调用第三方API。Google translate API是使用JSON数据格式的。而douban API是使用XML数据格式的。过程中不禁感慨,xml...

使用Java JSONObject操作JSON字符串对象

1、如果我们需要实现一个配置管理的功能,那么为每个配置项目增加一个字段既复杂也不利于扩展,所以我们通常使用一个字符串来保存配置项目信息,这里介绍如何使用json的字符串解析来达到刚才说的目的。引入Js...
  • Baple
  • Baple
  • 2013-07-07 12:33
  • 18165

Android BLE浅析

这篇博客想写很久了,只是之前一直提不起劲,刚好最近还是一如既往的闲得蛋疼,那就写写吧,免得自己都忘了!     刚进公司的时候,做的就是BLE的项目,随着这个项目的不了了之,我也忘了这事。      ...

json与xml的区别比较

  • 2014-10-17 22:21
  • 11KB
  • 下载

view.class.getField(s).getInt(null);

JOptionPane.class获得JOptionPane得class对象(不是很懂可以看看java反射) JOptionPane.class.getField(s)获得该class对象名称为s得域...

JSON和JSONP有哪些区别,PhoneGap跨域请求如何实现

前言   由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。   当然了,通过调用强大的PhoneGap插件然后打包,你可以实现...
  • baokx
  • baokx
  • 2015-03-31 16:53
  • 346

JSON.parse和eval的区别

前者只是将json格式的字符串转化成json对象 而后者是将字符串当作是js的代码来执行。 eval的使用范围更广,不过效率不高。 如果json字符串中有恶意脚本函数,eval函数不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)