0
Android 애플리케이션에서 일부 JSON을 구문 분석하려고합니다. JSONObject가 반환되며 JSONObject에는 JSONArray가 있습니다. 하지만 내 문제는 : 어떤면에서 안드로이드는 JSONObject의 배열을 인식하지 못합니다.JSONExeption : 항목에 대한 값이 없습니다.
이 내 안드로이드 코드 :이 Log.v("json: ", json.getString("tag"));
이 잘 작동하기 때문에
JSONParser jp = new JSONParser();
JSONObject json = jp.getList(id,code);
Log.v("json: ", json.getString("tag"));
JSONArray jarr = json.getJSONArray("items");
for (int i = 0; i < jarr.length(); i++) {
JSONObject jobj = jarr.getJSONObject(i);
list.add(jobj.getString("title"));
}
adapter.notifyDataSetChanged();
내 JSON은 OK입니다.
{
tag: "getlist",
status: 1,
success: "false",
items: [
{
id: "1",
owner: "1",
datecreated: "2013-10-12 20:05:00",
version: "1",
title: "asdfjkl",
subject: "Wiskunde D"
},
{
id: "2",
owner: "1",
datecreated: "2013-10-28 05:32:09",
version: "1",
title: "asdfjkl",
subject: "Nederlands"
}
]
}
그리고 내 로그 캣 finnaly :
04-05 22:23:39.082: D/Http Response:(31845): [email protected]
04-05 22:23:39.082: V/json:(31845): getlist
04-05 22:23:39.082: W/System.err(31845): org.json.JSONException: No value for items
04-05 22:23:39.092: W/System.err(31845): at org.json.JSONObject.get(JSONObject.java:355)
04-05 22:23:39.092: W/System.err(31845): at org.json.JSONObject.getJSONArray(JSONObject.java:549)
04-05 22:23:39.092: W/System.err(31845): at nl.wacsite.wacsitebeta.MainFragmentTab$getListAsyncTask.doInBackground(MainFragmentTab.java:62)
04-05 22:23:39.092: W/System.err(31845): at nl.wacsite.wacsitebeta.MainFragmentTab$getListAsyncTask.doInBackground(MainFragmentTab.java:1)
04-05 22:23:39.092: W/System.err(31845): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-05 22:23:39.092: W/System.err(31845): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-05 22:23:39.092: W/System.err(31845): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-05 22:23:39.092: W/System.err(31845): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-05 22:23:39.092: W/System.err(31845): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-05 22:23:39.092: W/System.err(31845): at java.lang.Thread.run(Thread.java:811)
내 질문입니다 : 내가 뭘 잘못하고 이 내 JSON입니까? 미리 감사드립니다.
'jarr.length()'에는 null이 포함되어 있습니다. 해당 배열에는 null이 없습니다. 해당 배열의 길이를 인쇄해볼 수 있습니까? –
디버깅을 시도하고'json'이 초기화 된 직후에 중단 점을 넣으십시오. 당신은 그것의 내용을 볼 수 있어야합니다. 항목이 그 안에있는 것처럼 보이지 않으면 원래 json 문자열이나 구문 분석 방법에 문제가 있습니다. – dharms