[英]Issue to parse 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://www.video.mediaset.it/bin/415.$plit/640x360_C_2_video_773297_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/515.$plit/640x360_C_2_video_773293_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/605.$plit/640x360_C_2_video_773279_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_773268_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/142.$plit/640x360_C_2_video_773267_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/479.$plit/640x360_C_2_video_773264_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/929.$plit/640x360_C_2_video_773266_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/196.$plit/640x360_C_2_video_773261_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/29.$plit/640x360_C_2_video_773262_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/4.$plit/640x360_C_2_video_773258_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_772171_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/73.$plit/640x360_C_2_video_772128_videoThumbnail.jpg",
"http://cdn.wittytv.it/wp-content/themes/wittytv/images/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://www.video.mediaset.it/bin/415.$plit/640x360_C_2_video_773297_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/515.$plit/640x360_C_2_video_773293_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/605.$plit/640x360_C_2_video_773279_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_773268_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/142.$plit/640x360_C_2_video_773267_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/479.$plit/640x360_C_2_video_773264_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/929.$plit/640x360_C_2_video_773266_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/196.$plit/640x360_C_2_video_773261_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/29.$plit/640x360_C_2_video_773262_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/4.$plit/640x360_C_2_video_773258_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_772171_videoThumbnail.jpg",
"http://www.video.mediaset.it/bin/73.$plit/640x360_C_2_video_772128_videoThumbnail.jpg",
"http://cdn.wittytv.it/wp-content/themes/wittytv/images/witty.png"
]
},
"stateToken": "eyJqYXIiOnsidmVyc2lvbiI6InRvdWdoLWNvb2tpZUAyLjMuMiIsInN0b3JlVHlwZSI6Ik1lbW9yeUNvb2tpZVN0b3JlIiwicmVqZWN0UHVibGljU3VmZml4ZXMiOnRydWUsImNvb2tpZXMiOltdfSwidmVyc2lvbiI6MX0=",
"cookies": []
}
“数据”对象具有2个数组-Output,output2。 通过从data中获取“输出”,您获得了第一个权利。 对第二个做相同的方法。
JSONArray联系人= jsonObj.getJSONObject(“数据”).getJSONArray(“输出”);
更改此行
JSONArray itemArray = jsonObj.getJSONArray("output2");
至
JSONArray output2 = jsonObj.getJSONObject("data").getJSONArray("output2");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.