2011-10-19 4 views
0

구문 분석되지 않는 :JSON 문자열은 내가 JSON 문자열을 구문 분석 할

MyJsonString :

http://www.androidcompetencycenter.com/2009/10/json-parsing-in-android/

http://p-xr.com/android-tutorial-how-to-parse-read-json-data-into-a-android-listview/

: 내가 겪었

{ 
    "status": "ok", 
    "count": 2, 
    "count_total": 9, 
    "pages": 5, 
    "posts": [ 
    { 
     "id": 432, 
     "type": "post", 
     "title": "Title 1" 
    }, 
    { 
     "id": 434, 
     "type": "post", 
     "title": "Title 2" 
    } 
    ] 
} 

T 그는 잘 작동하지만 예제에서는 JSON 문자열을 편집하여 Java String으로 만들었습니다.

예 : JSON 문자열 :

{"menu": { 
    "id": "file", 
    "value": "File", 
    "popup": { 
    "menuitem": [ 
     {"value": "New", "onclick": "CreateNewDoc()"}, 
     {"value": "Open", "onclick": "OpenDoc()"}, 
     {"value": "Close", "onclick": "CloseDoc()"} 
      ] 
    } 
}} 

나는에 편집 :

String jsonStr = "{menu: {" + 
     "id: file," + 
     "value: File," + 
     "popup: {" + 
      "menuitem: [" + 
      "{value: New, onclick: CreateNewDoc()}," + 
      "{value: Open, onclick: OpenDoc()}," + 
      "{value: Close, onclick: CloseDoc()}" + 
      "]" + 
     "}" + 
     "}}"; 

하지만 난 그에 따라 유효한 자바 문자열로를 편집 한 후이 myJsonString을 분석하고 프로젝트를 실행하려고 할 때 , 그것은 나에게 경고를 준다. 그리고 그것은 나에게 표제를주는 유명 인사 메시지를 표시하지 않는다.

로그 캣 :

10-19 18:36:45.972: WARN/System.err(1250): org.json.JSONException: Unterminated object at character 101 of { status : ok ,count : 2,count_total : 9,pages : 5,posts : [{id : 432,type : post ,title : Title 1 ,},{id : 434,type : post ,title : Title 2 ,},]} 

내가 잘못하고있는 중이 야 어디 몰라? 심지어 Json String을 프로그래밍 가능한 Java String으로 만드는 방법을 모르겠습니다.

도움을 주시면 감사하겠습니다.

편집 :

String jsonString="{\" status : ok \",\"count : 2\",\"count_total : 9\",\"pages : 5\",\"posts\" : [{\" id\" : \"432\",\"type\": \" post\", \"title\" : \" Title 1 \"},{ \"id \": \"434\",\type : post ,\"title\" : \" Title 2\"}]}"; 

JSONObject jsonObj = new JSONObject(jsonString); 

      String status_value = jsonObj.getString("status");   

      Toast.makeText(context,"Status_value= "+status_value, Toast.LENGTH_LONG).show(); 

내가 할 수없는이를 열었 토스트 상태 값에 노력했다. 도와주세요.

+1

그래서 아마 당신은 오류가 발생하는 것입니다. –

+0

하지만 예를 들어, 작동했다. 나는 JSON을 처음 사용하므로 예제로 시작 했으므로 JSON 문자열을 편집하려고 시도했다. JSON 문자열을 편집하면 안된다. Java String 객체와 함께 사용하는 방법 ? – Hiral

+0

JSON 문자열을 왜 편집하고 있습니까? 그대로 사용하십시오. JSON 개체와 JSON 배열을 사용하여 값을 가져옵니다. – user370305

답변

3

JSON 수신의 응답이 유효하지 않습니다. 업데이트]

"count": 2, which is not the correct way it should be in double quotes like this 

"count": "2", same way for the rest of the response String also. 

: 사용자가 만든

당신 정확한 JSONString 잘못, 그냥 내 문자열과 체크 아웃을 교체합니다.

첫 번째 문자열

String jsonString = "{\"status\": \"ok\",\"count\": \"2\",\"count_total\": \"9\",\"pages\": \"5\",\"posts\":" + 
     "[{\"id\": \"432\",\"type\": \"post\",\"title\": \"Title 1\"}," + 
     "{\"id\": \"434\",\"type\": \"post\",\"title\": \"Title 2\"}]}"; 

두 번째 문자열 당신이 JSON 문자열을 편집 한 이유는, 편집 된 버전이 유효 JSON 나에 서식처럼 보이지 않는 이해하지

String jsonStr = "{\"menu\": {\"id\": \"file\",\"value\": \"File\",\"popup\": {\"menuitem\": " + 
      "[{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"}," + 
      "{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}"; 
+0

그 방법으로 응답을 주셔서 감사합니다. 유효한 Java String은 어떻게됩니까? 내 말은, "count": "2"는 ":"에 오류를줍니다. – Hiral

+0

수정 된 답변을 확인하십시오. –

+0

감사합니다. Json 문자열을 만드는 데 정말로 도움이되었습니다. 하지만 여전히 토스트에서 적절한 반응을 얻지 못하고 있습니다. – Hiral

3

자바 코드의 문자열이 유효한 JSON 문자열이 아닙니다. 문자열을 따옴표로 묶지 마십시오. 이 중 하나를 시도하십시오 :

String example = "[\"a\", \"b\", \"c\"]"; 

이것은 문자열 배열을 제공해야합니다.