2013-12-19 41 views
0
JSONObject quotesObject = new JSONObject(responseStr); 
       Log.e("leb","4"); 
       //get it as array 
       JSONArray projects = quotesObject.getJSONArray("project"); 

我從我的服務器獲得了Json。 而這些是我的錯誤信息:爲什麼不能將JSONObject轉換爲JSONArray

12-19 11:56:17.314: W/System.err(456): org.json.JSONException: Value {"category":"1","Body":"eeee","Price":"110.0","ID":"1","NowPrice":"10.0","idRef":"1","user":"1","Title":"I"} at project of type org.json.JSONObject cannot be converted to JSONArray 

12-19 11:56:17.374: W/System.err(456): at org.json.JSON.typeMismatch(JSON.java:96) 
12-19 11:56:17.374: W/System.err(456): at org.json.JSONObject.getJSONArray(JSONObject.java:548) 
12-19 11:56:17.413: W/System.err(456): at com.supinfo.sup.rest.ProjectRestDao$RestTaskGetAll.doInBackground(ProjectRestDao.java:197) 
12-19 11:56:17.434: W/System.err(456): at com.supinfo.sup.rest.ProjectRestDao$RestTaskGetAll.doInBackground(ProjectRestDao.java:1) 
12-19 11:56:17.434: W/System.err(456): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
12-19 11:56:17.434: W/System.err(456): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
12-19 11:56:17.434: W/System.err(456): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
12-19 11:56:17.434: W/System.err(456): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
12-19 11:56:17.434: W/System.err(456): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
12-19 11:56:17.434: W/System.err(456): at java.lang.Thread.run(Thread.java:1096) 
+0

因爲這裏顯示的json不是數組。 – Nfear

+0

這個JSON表示不是JSON數組的JSON對象! – Pavlos

+0

服務器響應中沒有JSON數組。 –

回答

0

在你的回覆中,你沒有任何一種JSONArray。它只包含JSONObject。所以,你必須如下解析它:

簡單地從給定的字符串創建一個JSONObject,然後從JSONObject的提取所有值:

//create json object form responce string 
JSONObject object = new JSONObject(responseStr); 

//get nickname 
String category= object.getString("category"); 
String body=object.getString("Body"); 
///.... get other value for object 

,還可以使用JSONObject.has(String name)的檢查是當前JSON對象包含映射給出名稱與否

0

兩者都針對不同的目的和解決不同的問題開發的,如對象,你可以儲存在單一對象的多個值,併爲JSONArray可以保存多個對象和遍歷他們。

如果由於轉換原因而出現問題,那麼解析邏輯中存在問題。分析JSON輸出並解析它。

相關問題