2017-04-12 1 views
0
에 문자열을 구문 분석 할 수 없습니다

I (내가 아는 한) 다음 호출 한 후 올바른 형식은 JSONArray

[ 
    { 
     "name":"John Doe" 
    }, 
    { 
     "name":"Jane Doe" 
    } 
] 

에 다음 문자열이 있습니다

return new JSONArray(jsonString); 

jsonString 존재로를 위에 주어진 JSON. 다음 오류가 발생합니다.

org.json.JSONException: Value jsonString of type java.lang.String cannot be converted to JSONArray 

파서가 문자열을 허용하지 않는 이유는 무엇입니까? 문제가 해결 된

편집. 배열은 JSON 출력에서 ​​문자열로 인코딩되었습니다. 먼저 getStringArray를 사용하여 문자열을 직접 변환하지 않고 getString (param) 메소드로 문자열을 검색 한 다음 문자열을 json 배열로 변환했습니다.

+0

Java 코드에서 JSON을 어떻게 표현하고 있습니까? 즉, 게시 한 JSON 블록에서 'String' 변수로 어떻게 이동합니까? 방금 JSON을'String'에 넣고 모든 따옴표를 이스케이프 처리해 보았습니다. 또한'org.json.json'의 어떤 버전을 사용하고 있습니까? – Adam

+0

파일에서 json을 읽는 경우 파일 인코딩을 처리해야합니다. –

+0

JSON 개체로 JSON을 나타냅니다. 스레드의 블록은 키'data'의 문자열 값입니다. 먼저 전체 JSON 블록을 'JSONObject'로 변환합니다. 그런 다음,'getJSONArray ("data")'를 호출하여 키'data' 아래에서 배열을 얻으려고합니다. 문자열이 올바르게 이스케이프됩니다. – CPUFry

답변

0

문제가 해결되었습니다. 배열은 전체 JSON 출력에서 ​​문자열로 인코딩되었습니다. 먼저 getStringArray를 사용하여 문자열을 직접 변환하지 않고 getString (param) 메소드로 문자열을 검색 한 다음 문자열을 json 배열로 변환했습니다.