我嘗試開發一個Android應用程序的Web服務返回一個JSON文件,例如:閱讀JSON通過web服務的Android
{ 「成功」:1, 「消息」: 「後 可用」, 「posts」:[{「post_id」:「1」,「username」:「hasni」,「title」:「titre」,「message」:「這個 是我的信息」},{「post_id」:「2 「,」username「:」user2「,」title「:」titre 2「,」message「:」這是我的信息 2「},{」post_id「:」3「,」username「:」123「 「標題」: 「12」, 「消息」: 「111」},{ 「POST_ID」: 「4」, 「用戶名」: 「1212」, 「標題」: 「1212」, 「消息」: 「1212」 },{「post_id」:「5」,「username」:「1212」,「title」:「bonjour」,「message」:「voila ce message qui dient d'une session 「},{」 POST_ID 「:」 6" , 「用戶名」: 「121212」, 「標題」: 「滴度」, 「消息」: 「消息」}]}
這是部分讀取此JSON的代碼:
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("receiver", strSender));
JSONObject json = jsonParser.makeHttpRequest(
LOGIN_URL, "POST", params);
success = json.getInt(TAG_SUCCESS);
Log.d("ok", "ok");
if (success == 1){
messagesArray = (JSONArray)json.getJSONArray(TAG_POSTS);
for (int i= 0;i <messagesArray.length();i++){
Log.d("iteration", "iteration" + i);
JSONObject messageJson = messagesArray.getJSONObject(i);
Log.d("post_id","post_id: "+i+ " "+ messageJson.getString(TAG_POSTS_ID));
Log.d("username","username: " +i+" " + messageJson.getString(TAG_POSTS_USERNAME));
Log.d("title", "title: " +i+ " " + messageJson.getString(TAG_POSTS_ID_TITLE));
Log.d("message","message: "+i+" "+ messageJson.getString(TAG_POSTS_ID_MESSAGE));
}
}else{
Log.d("failed", "!!!!!!!!!!!!!!!!!!!!!!!!");
}
但我遇到問題:應用程序崩潰並退出。這是logcat的:
09-27 23:15:37.119:W/System.err的(489):org.json.JSONException:15:37.119:上崗09-27 23號 值W /System.err(489):at org.json.JSONObject.get(JSONObject.java:354)09-27 23:15:37.128: W/System.err(489):at org.json.JSONObject .getJSONArray(JSONObject.java:544)09-27 23:15:37.128:W/System.err(489):at com.example.mysql.ReadMessages.onCreate(ReadMessages.java:73)09-27 23:15:37.128:W/System.err(489):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-27 23:15:37.128:W/Syst em.err(489):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 09-27 23:15:37.128:W/System.err(489):at android.app.ActivityThread。 (活動線程.java:1663) 09-27 23:15: 15:37.128:W/System.err(489):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:931) 09-27 23:15:37.138:W/System.err(489):在 android.os.Handler.dispatchMessage(Handler.java:99)09-27 23:15:37.138:W/System.err(489):at android.os.Looper.loop(Looper.java:123 )09-27 23:15:37.138: W/System.err(489):at android.app.ActivityThread.main(ActivityThread.java:3683)09-27 23:15:37.138:W/System.err(489):at java.lang .reflect.Method.invokeNative(Native Method)09-27 23:15:37.138:W/System.err(489):at java.lang.reflect.Method.invoke(Method.java:507)09-27 23:15:37.138: W/System.err(489):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839) 09-27 23:15:37.138:W/System.err(489):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)09-27 23:15:37.138:W/System.err(489):at dalvik。 system.NativeStart。主(本地方法)
你能打印的Android收到的JSON?嘗試編碼Log.d(「json」,json.toString());'below' success = json.getInt(TAG_SUCCESS);'並告訴json收到的結構是否如你所期望的那樣。 – RdlP 2014-09-27 01:01:03