解析json的问题

我必须解析这个json:

{ success: true, outputScenario: "Default", data: { output: [ { titolo: "Lunedì 6 novembre", sottotitolo: "Pesanti illazioni sulla conoscenza pregressa tra Vittoria e Mattia. Una nuova conoscenza per Paolo. E...", date: "06/11/2017" }, { titolo: "I vincitori di Maria Express", sottotitolo: "Loro sono...", date: "06/11/2017" }, { titolo: "Mattia e Vittoria", sottotitolo: "Mattia viene messo alle strette e...", date: "06/11/2017" }, { titolo: "Patto illecito? Accordo segreto? Conoscenza pregressa?", sottotitolo: "Mattia e Vittoria sono al centro di un vero e proprio irrisolvibile caso...", date: "06/11/2017" }, { titolo: "Esterna di Mattia e Vittoria - 6 novembre", sottotitolo: "En plein air", date: "06/11/2017" }, { titolo: "Esterna di Paolo e Giorgia - 6 novembre", sottotitolo: "Un primo incontro molto schietto", date: "06/11/2017" }, { titolo: ""Sono fatto così"", sottotitolo: "Mattia è molto infastidito da alcuni commenti nei suoi riguardi", date: "06/11/2017" }, { titolo: ""Occhi da gatta... morta!"", sottotitolo: "Tra Ester e Angela non corre buon sangue....", date: "06/11/2017" }, { titolo: "Esterna di Paolo e Angela - 6 novembre", sottotitolo: "Caldarroste e chiarimenti", date: "06/11/2017" }, { titolo: "Esterna di Paolo e Ester - 6 novembre", sottotitolo: "Metti una serata... "romantica"", date: "06/11/2017" }, { titolo: ""Sei la persona a cui penso di più"", sottotitolo: "Nella prossima puntata del Trono Classico...", date: "05/11/2017" }, { titolo: "Esterna inedita di Paolo e Silvia - 3 novembre", sottotitolo: "Un'esterna vintage!", date: "03/11/2017" } ], output2: [ "http://sofzh.miximages.com/java/640x360_C_2_video_773297_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773293_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773279_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773268_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773267_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773264_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773266_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773261_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773262_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773258_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_772171_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_772128_videoThumbnail.jpg", "http://sofzh.miximages.com/java/witty.png" ] }, stateToken: "eyJqYXIiOnsidmVyc2lvbiI6InRvdWdoLWNvb2tpZUAyLjMuMiIsInN0b3JlVHlwZSI6Ik1lbW9yeUNvb2tpZVN0b3JlIiwicmVqZWN0UHVibGljU3VmZml4ZXMiOnRydWUsImNvb2tpZXMiOltdfSwidmVyc2lvbiI6MX0=", cookies: [ ] } 

第一个数组output我能够解析,但第二个数组output2我无法解析。

我告诉你我的代码:

 @Override protected Void doInBackground(Void... arg0) { HttpHandler sh = new HttpHandler(); // Making a request to url and getting response String jsonStr = sh.makeServiceCall(url); Log.e(TAG, "Response from url: " + jsonStr); if (jsonStr != null) { try { JSONObject jsonObj = null; try { jsonObj = new JSONObject(jsonStr); } catch (JSONException e) { e.printStackTrace(); } // Getting JSON Array node JSONArray contacts = jsonObj.getJSONObject("data").getJSONArray("output"); // looping through All Contacts for (int i = 0; i < contacts.length(); i++) { JSONObject c = contacts.getJSONObject(i); Video video=new Video(); String titolo = c.getString("titolo"); String sottotitolo = c.getString("sottotitolo"); String data = c.getString("date"); video.setTitolo(titolo); video.setSottotitolo(sottotitolo); video.setData(data); videoList.add(video); } JSONArray itemArray = jsonObj.getJSONObject("data").getJSONArray("output2"); for(int i=0;i<itemArray.length();i++) { String c = itemArray.getString(i); Log.i("Value is:::",""+c); } } catch (final JSONException e) { Log.e(TAG, "Json parsing error: " + e.getMessage()); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), "Json parsing error: " + e.getMessage(), Toast.LENGTH_LONG) .show(); } }); } } else { Log.e(TAG, "Couldn't get json from server."); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), "Couldn't get json from server. Check LogCat for possible errors!", Toast.LENGTH_LONG) .show(); } }); } return null; } 

这个用于cicle没有运行:

  for(int i=0;i<itemArray.length();i++) { String c = itemArray.getString(i); Log.i("Value is:::",""+c); } 

我从logcat得到这个:

 Json parsing error: No value for output2 

如何从服务器响应我只获得第一个数组而不是第二个…为什么?

谁能帮我?

提前致谢!

试试这个格式化的Json String

 { "success": true, "outputScenario": "Default", "data": { "output": [ { "titolo": "Lunedì 6 novembre", "sottotitolo": "Pesanti illazioni sulla conoscenza pregressa tra Vittoria e Mattia. Una nuova conoscenza per Paolo. E...", "date": "06/11/2017" }, { "titolo": "I vincitori di Maria Express", "sottotitolo": "Loro sono...", "date": "06/11/2017" } ], "output2": [ "http://sofzh.miximages.com/java/640x360_C_2_video_773297_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773293_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773279_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773268_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773267_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773264_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773266_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773261_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773262_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_773258_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_772171_videoThumbnail.jpg", "http://sofzh.miximages.com/java/640x360_C_2_video_772128_videoThumbnail.jpg", "http://sofzh.miximages.com/java/witty.png" ] }, "stateToken": "eyJqYXIiOnsidmVyc2lvbiI6InRvdWdoLWNvb2tpZUAyLjMuMiIsInN0b3JlVHlwZSI6Ik1lbW9yeUNvb2tpZVN0b3JlIiwicmVqZWN0UHVibGljU3VmZml4ZXMiOnRydWUsImNvb2tpZXMiOltdfSwidmVyc2lvbiI6MX0=", "cookies": [] } 

“data”对象有2个数组 – Output,output2。 通过从数据中提取“输出”,你得到了第一个。 对第二个做同样的事情。

JSONArray contacts = jsonObj.getJSONObject(“data”)。getJSONArray(“output”);

改变这一行

 JSONArray itemArray = jsonObj.getJSONArray("output2"); 

  JSONArray output2 = jsonObj.getJSONObject("data").getJSONArray("output2");