测试getJSONArray是否为null

tos*_*o92 7 java android json

我的代码提取了JSONObject的结果,但有时,i值不会从1开始,我有一个错误:

org.json.JSONException: No value for 1
Run Code Online (Sandbox Code Playgroud)

我的代码:

JSONObject obj = new JSONObject(result);
       for(int i=1;i<=14;i++) {

            JSONArray arr = obj.getJSONArray(""+i);
        extraction(arr, i);
       }
Run Code Online (Sandbox Code Playgroud)

如果目标代码(i)存在与否,我想在提取之前进行测试.我怎么能这样做?

Kev*_*vin 12

obj.optJSONArray(name)如果名称不存在,则使用响应将为null.

JSONObject obj = new JSONObject(result);
   for(int i=1;i<=14;i++) {

        JSONArray arr = obj.optJSONArray(""+i);
        if(arr != null) {
              extraction(arr, i);
        }
   }
Run Code Online (Sandbox Code Playgroud)

  • 你需要了解getJSONArray和optJSONArray之间的区别.如果密钥不存在,第一个崩溃,第二个返回null,您可以测试. (5认同)