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