2014-04-09 2 views
0

json을 구문 분석하고 작은 문제가 발생했습니다.JSON 예외 문자열을 JSON 객체로 변환 할 수 없습니다.

내 JSON 문자열은 다음과 같습니다

String json = 
    [ 
     "{caption=blah, url=/storage/emulated/0/DCIM/Camera/20140331_164648.jpg}", 
     "{caption=adsf, url=/storage/emulated/0/DCIM/Camera/20140330_103412.jpg}" 
    ] 

내 코드를 지금까지 다음과 같습니다

try { 
JSONArray jsonObj = new JSONArray(json); 

for (int i = 0; i < jsonObj.length(); i++) { 
    JSONObject c = jsonObj.getJSONObject(i); 



    String img = c.getString("url"); 
    String cap = c.getString("caption"); 

을하지만 그 예외 내가 잘못 뭐하는 거지 type java.lang.String cannot be converted to JSONObject

을 던지는?

편집

하면 그 사람에게 도움이,이 같은 정확한 예상되는 형식으로 내 JSON을 얻을 GSON를 사용하여 종료 :

Gson gson = new Gson(); 
String json = gson.toJson(mylist); 
+1

'getJSONObject' 행을 사용했지만 JSONObject를 얻으 려하지 않고 String을 얻으려고합니다. – csmckelvey

+0

JSON 형식의 문자열이 JSON 형식이 아닙니다. –

+0

JSON을 테스트하려면 jsonlint.com을 시도하십시오. –

답변

3

귀하의 JSON 배열이

같은 요소를 포함
"{caption=blah, url=/storage/emulated/0/DCIM/Camera/20140331_164648.jpg}" 

이는 String이며 JSON 개체는 아닙니다. 따라서 JSONObject으로 검색하려고 시도 할 수 없습니다.

예기치 못한 format에 JSON이있는 것 같습니다. 주위에 ""을 없애더라도 여전히 유효한 JSON이 아니므로 그 목적을 충분히 이해하지 못합니다.

+0

오케이 이런 뜻이 되겠지. – BluGeni

+0

이런 식의 arraylist를 변환하는 더 좋은 방법이 있나? \t public ArrayList > mylist = new ArrayList >(); '개체가있는 json 문자열에? – BluGeni

+0

@BluGeni 자바 객체는'[{ "": "}, ...]'처럼 JSON에 잘 매핑됩니다. 즉, JSON 객체를 포함하는 JSON 배열입니다. 각 JSON 객체는'String'의 이름 - 값 쌍입니다. –

관련 문제