2012-11-26 5 views
2

나를 도울 수 있기를 바랍니다. 조직 :Android 용 Java에서 JSON 데이터 구문 분석

... 
private static final String TAG_teachers = "teachers"; 
private static final String TAG_TITLE = "title"; 

for(int i = 0; i < seminar.length(); i++){ 
    JSONObject c = seminar.getJSONObject(i); 
    ... 
    teachers = c.getJSONArray(TAG_DOZENTEN); 
    for(int z = 0; z < teachers.length(); z++){     
    JSONObject d = teachers.getJSONObject(z); 
    String title = d.getString(TAG_TITLE); 
    Log.d("JSONParsingActivity", title); 

내가 오류를 System.err (1010) 얻을

{"seminar":[ 
    {"categoryid": "1","cpe": "13","inventory":["Discussion","Value x","Value y" 
    ],"teachers": [ 
    { 
     "titel": "Dipl.-Ing.", 
     "company": "XY", 
     "name": "Test", 
     "id": "3", 
    } 
    ], 

},... 

나는에 ... 교사 데이터를 분석하여 손실 오전 : 나는 다음과 같은 JSON 파일을 구문 분석하는 것을 시도하고있다 .json.JSONException : 값 null org.json.JSONObject $ 1 선생님의 을 JSONArray로 변환 할 수 없습니다.

내가 뭘 잘못 했니? JSON 문서에서 알 수 있듯이 선생님은 JSON 배열이며 객체가 아닙니다. 누군가 나를 도울 수 있습니까?

+0

무엇이 TAG_DOZENTEN입니까? –

+1

답변이 정확하지만 http://jsonlint.com/ –

답변

3

교사 ("3"이후)에 추가 쉼표가 있습니다. JSON에서는 허용되지 않습니다. 그것을 제거하고 도움이되는지 확인하십시오.

2

당신의 JSON 정말 형태 인 경우 :

{ ... }, { ... }, { ... }, ... 

이 무효 JSON에게 있습니다

루트 인클로저 ({}에서) 하나의 개체 또는 ([]에서) 배열을 여야합니다.

개체의 배열을 보내려는 경우 대괄호로 전체를 래핑하여 배열로 만들고 JSONArray 개체를 만듭니다.

은 그래서 당신은 또한 당신이 돈 있는지 확인하기 위해 필요한이

[ { ... }, { ... }, { ... }, ... ] 

처럼해야하며 자신에게 시간을 절약하기 위해 JSONLint 또는 기타 유사한 JSON 형식 검사기를 사용하여 t 등 추가 쉼표, 닫히지 않은 브라켓을 가지고 문법상의 문제를 발견했다.

+0

도움을 주셔서 감사합니다. 내 JSON 코드가 유효합니다. 이러한 오류는 방금 발생한 것이지만이 플랫폼에 대한 코드 단축을 시도했습니다. – user1854707

+0

내가 잘못된 json을 여기 넣은 것처럼 새로운 질문을 열었습니다. – user1854707