2011-08-26 251 views
0

我必須從一臺服務器如下回應:page:{"result":"ok","id_photo":36782710}。而我試圖這樣做是爲了獲得從那裏result從JSON對象獲得字符串

String r=page.toString(); 
JSONArray jArray = new JSONArray(r); 
JSONObject jsdata = r.getJSONObject(0); 

String result = jsdata.getString("result"); 
System.out.println("Raspunsul de la server este:" +result); 

,但我得到了以下錯誤:

WARN/System.err(30452): org.json.JSONException: Value {"result":"ok","id_photo":36782710} of type org.json.JSONObject cannot be converted to JSONArray 
at org.json.JSON.typeMismatch(JSON.java:107) 
at org.json.JSONArray.<init>(JSONArray.java:91) 
at org.json.JSONArray.<init>(JSONArray.java:103) 
at com.Contest.DialogExampleActivity.executeMultiPartPost(DialogExampleActivity.java:131) 
at com.Contest.DialogExampleActivity.btnSend_onClick(DialogExampleActivity.java:88) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at android.view.View$1.onClick(View.java:2157) 
at android.view.View.performClick(View.java:2534) 
at android.view.View$PerformClick.run(View.java:9210) 
at android.os.Handler.handleCallback(Handler.java:587) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:3701) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 
at dalvik.system.NativeStart.main(Native Method 

任何任何想法?

回答

3

嘗試將它實例化爲JSONObject,而不是將數據解析爲數組,而是對象。

JSONObject json = new JSONObject(response); 
String result = json.getString("result"); 
+0

它的好,工作:) – adrian

2

正如madsleejensen說,它應該被視爲JSONObjectJSONArray,併爲未來的引用,簡單的意見,不同的時候使用權類型爲:JSONObject[]涵蓋{}JSONArray覆蓋。

+0

好的,謝謝...很高興知道 – adrian

+0

+1非常感謝您添加這一點的信息。我一直在試圖弄清楚問題所在。一旦我切換到JSONArray - 它的工作! –