Java JSON异常:没有值
我正在编写一个简单的android应用程序,它使用API获取一些数据,但我发现以下错误: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.
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