开发小细节系列之一

JSON解析中,get方法和opt方法的区别。

之前听说能用opt就尽量不用get,说是opt会提供默认值,比get保险一些。今天还是从源码角度看一下这两者的区别吧。

public JSONArray getJSONArray(String name) throws JSONException {
        Object object = get(name);
        if (object instanceof JSONArray) {
            return (JSONArray) object;
        } else {
            throw JSON.typeMismatch(name, object, "JSONArray");
        }
    }

可以看到,get方法使用中是会抛出异常的。


public JSONArray optJSONArray(String name) {
        Object object = opt(name);
        return object instanceof JSONArray ? (JSONArray) object : null;
    }


而opt方法,在使用时不会抛出异常,并且会返回null


总得来说,如果你在开发中使用get方法,就需要用try catch语句限制住。而使用opt方法时则要注意结果可能为空,要记得加为空判断。一般情况下,用opt是完全可以替代get方法的。






猜你喜欢

转载自blog.csdn.net/kongou/article/details/78614577