2013-12-19 2 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

입니다. – 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 객체 매핑을 포함입니다 이름은 여기에 표시된 json이 배열이 아니기 때문에

0

모두 서로 다른 목적과 다른 문제를 해결하기 위해 개발 된, 여러 값을 하나의 객체에 저장된 수있는 객체로, 그리고 JSONArray에 대한 여러 객체와 횡단을 절약 할 수 있습니다 그들.

변환 이유로 인해 문제가 발생하면 구문 분석 논리에 문제가 있습니다. JSON 출력을 적절히 분석 한 다음 구문 분석하십시오.

관련 문제