Java JSON异常:没有值

Java JSON异常:没有值,java,android,json,exception,mobile,Java,Android,Json,Exception,Mobile,我正在编写一个简单的android应用程序,它使用API获取一些数据,但我发现以下错误: System.err: org.json.JSONException: No value for genre_ids 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err: at org.json.JSONObject.get(JSONObject.java:389) 07-19 18:12:08.

我正在编写一个简单的android应用程序,它使用API获取一些数据,但我发现以下错误:

 System.err: org.json.JSONException: No value for genre_ids
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at org.json.JSONObject.get(JSONObject.java:389)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at org.json.JSONObject.getJSONArray(JSONObject.java:584)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at com.adeel.android.movieinfoapp.Networking.onPostExecute(Networking.java:72)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at com.adeel.android.movieinfoapp.Networking.onPostExecute(Networking.java:21)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at android.os.AsyncTask.finish(AsyncTask.java:632)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at android.os.AsyncTask.access$600(AsyncTask.java:177)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at android.os.Looper.loop(Looper.java:145)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5832)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
 07-19 18:12:08.164 24204-24204/com.adeel.android.movieinfoapp W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
下面是我的代码:

@Override
protected void onPostExecute(String s) {
    try {
        JSONObject jsonObject = new JSONObject(result);
        JSONArray jsonStrings = jsonObject.getJSONArray("genre_ids");
        String strings[] = new String[jsonStrings.length()];

        for(int i=0;i<strings.length;i++) {
            strings[i] = jsonStrings.getString(i);
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

    super.onPostExecute(s);
}
@覆盖
受保护的void onPostExecute(字符串s){
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray jsonStrings=jsonObject.getJSONArray(“类型ID”);
String strings[]=新字符串[jsonStrings.length()];

对于(int i=0;i您没有正确解析嵌套的
JsonArray

此处
genre\u id
数组位于
results
数组下

使用以下代码:

try {
    JSONObject jsonObject = new JSONObject(s);  //string pass to your onPostExecute()
    JSONArray result = jsonObject.getJSONArray("results");
    for(int j=0;i<result.length;j++) {
        JSONObject inner = result.getJSONObject(j);
        JSONArray jsonStrings = inner.getJSONArray("genre_ids");
        String strings[] = new String[jsonStrings.length()];
        for(int i=0;i<strings.length;i++) {
            strings[i] = jsonStrings.getString(i);
        }
    }
} catch (JSONException e) {
    e.printStackTrace();
}
试试看{
JSONObject JSONObject=新的JSONObject;//传递到onPostExecute()的字符串
JSONArray result=jsonObject.getJSONArray(“结果”);

对于(int j=0;i您没有正确解析嵌套的
JsonArray

此处
genre\u id
数组位于
results
数组下

使用以下代码:

try {
    JSONObject jsonObject = new JSONObject(s);  //string pass to your onPostExecute()
    JSONArray result = jsonObject.getJSONArray("results");
    for(int j=0;i<result.length;j++) {
        JSONObject inner = result.getJSONObject(j);
        JSONArray jsonStrings = inner.getJSONArray("genre_ids");
        String strings[] = new String[jsonStrings.length()];
        for(int i=0;i<strings.length;i++) {
            strings[i] = jsonStrings.getString(i);
        }
    }
} catch (JSONException e) {
    e.printStackTrace();
}
试试看{
JSONObject JSONObject=新的JSONObject;//传递到onPostExecute()的字符串
JSONArray result=jsonObject.getJSONArray(“结果”);

对于(int j=0;i添加到rafsanahmad007点,而不是“get”,如果使用“opt”,则可以获取空值而不是异常

try {
    JSONObject jsonObject = new JSONObject(s);
    JSONArray resultArray = jsonObject.optJSONArray("results");

    if (resultArray == null) {
        Log.d("MM", "Json array is null");

        return;
    }
    for (int i = 0; i < resultArray.length(); i++) {
        JSONObject resultObj = resultArray.getJSONObject(i);

        if (resultObj == null) {
            continue;
        }

        JSONArray jsonStrings = jsonObject.optJSONArray("genre_ids");

        if (jsonStrings != null) {
            String strings[] = new String[jsonStrings.length()];

            for (int j = 0; j < strings.length; j++) {
                strings[j] = jsonStrings.optString(j);
            }
        }

    }


} catch (JSONException e) {
    e.printStackTrace();
}
试试看{
JSONObject JSONObject=新的JSONObject;
JSONArray resultArray=jsonObject.optJSONArray(“结果”);
if(resultArray==null){
Log.d(“MM”,“Json数组为空”);
返回;
}
对于(int i=0;i
添加到rafsanahmad007点,而不是“get”,如果使用“opt”,则可以获取空值而不是异常值

try {
    JSONObject jsonObject = new JSONObject(s);
    JSONArray resultArray = jsonObject.optJSONArray("results");

    if (resultArray == null) {
        Log.d("MM", "Json array is null");

        return;
    }
    for (int i = 0; i < resultArray.length(); i++) {
        JSONObject resultObj = resultArray.getJSONObject(i);

        if (resultObj == null) {
            continue;
        }

        JSONArray jsonStrings = jsonObject.optJSONArray("genre_ids");

        if (jsonStrings != null) {
            String strings[] = new String[jsonStrings.length()];

            for (int j = 0; j < strings.length; j++) {
                strings[j] = jsonStrings.optString(j);
            }
        }

    }


} catch (JSONException e) {
    e.printStackTrace();
}
试试看{
JSONObject JSONObject=新的JSONObject;
JSONArray resultArray=jsonObject.optJSONArray(“结果”);
if(resultArray==null){
Log.d(“MM”,“Json数组为空”);
返回;
}
对于(int i=0;i