開發小細節系列之一

ShanLiang_Build發表於2017-11-23

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方法的。






相關文章