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

org.json.JSONObject的optXXX方法

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

JSONObject对象的optXXX和getXXX的区别

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

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

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

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

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

【Spring 基础篇三】属性注入与属性编辑器

上篇我们了解了一下applicationContext.xml的两种注入方式,本篇我们来了解一下关于属性的注入以及操作。 在敲代码的过程中,我们很容易遇到这样的问题,比如一个List的集合,我之前给他...

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

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

getint() sql

示例程序说明 虽然该示例太简单因而不实用,但它包含了用于数据库访问的所有 Java 程序中必须出现的元素。以下内容介绍了该示例程序中的关键元素。创建您自己的 UltraLite 应用程序时可参照这些步...

JSONObject和JSONArray区别及基本用法

一、JSONObject和JSONArray的数据表示形式 JSONObject的数据是用 {  } 来表示的,         例如:   { "id" : "123", "courseID" ...

Android中cursor.getInt()返回值的坑

Andorid里Cursor类的getInt()方法,当数据为null的时候返回值是0,被坑了好几次了~ 为了避免将null和0混淆,也可以用getString()代替。 下面是一个老外写的,原文...
  • javensun
  • javensun
  • 2011年09月10日 10:05
  • 11408

http返回值转换成json后,int类型转成的是NSNumber

今天在做一个简单测试,http post,httpPOST返回后的json是code=20000,一开始直接使用int类型强转 ,发现有问题,打印出来的结果始终不对,后来调试发现原来int类型值其实转...
  • roomcxj
  • roomcxj
  • 2015年06月30日 16:54
  • 943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSON中getInt()和optInt()的区别
举报原因:
原因补充:

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