2013-12-19 39 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输出并解析它。

相关问题