0
JSON-ME를 사용하여 Twitter의 JSON 응답을 구문 분석하는 방법을 연구 중입니다. 예를 들어BlackBerry의 JSON 구문 분석 문제
: 여기
http://apiwiki.twitter.com/Twitter-Search-API-Method:-search
foo({"results":[{"profile_image_url":"http://a3.twimg.com/profile_images/762620209/drama_queen-6989_normal.gif","created_at":"Thu, 01 Apr 2010 02:35:10 +0000","from_user":"TWEETSDRAMA","to_user_id":null,"text":"NEW Twitter Lists Widget - How to put it on your blog or site http://bit.ly/47NCi6","id":11401539152,"from_user_id":95081097,"geo":null,"iso_language_code":"en","source":"<a href="http://ping.fm/" rel="nofollow">Ping.fm</a>"}... (content truncated)
내 방법입니다 :
public void parseDataFromJSON(String strjson) throws JSONException {
JSONTokener jtoken = new JSONTokener(strjson);
JSONArray jsoarray = new JSONArray(jtoken);
JSONObject jsobj = jsoarray.getJSONObject(0);
tweeter_profile_image_url = jsobj.optString("profile_image_url");
tweeter_created_at = jsobj.optString("created_at");
tweeter_from_user = jsobj.optString("from_user");
tweeter_to_user_id = jsobj.optString("to_user_id");
tweeter_text = jsobj.optString("text");
tweeter_id = jsobj.optInt("id");
tweeter_from_user_id = jsobj.optInt("from_user_id");
tweeter_geo = jsobj.optString("geo");
tweeter_iso_language_code = jsobj.optString("iso_language_code");
tweeter_source = jsobj.optString("source")
}
내가 에뮬레이터를 실행
는, 아무것도 표시되지, 그래서 내가 디버거를 검사, 출력했다 : 상태 : 200 content : { "results": [{ "profile_image_url": " http://a1.twimg.com/profile_images/746683548/Photo_on_2010- ..... ---> OK, JSON 콘텐츠가 있습니다.org.json.me.JSONEx ception : JSONArray 텍스트는 { "results": {{ "profile_image_url .... --->의 문자 1에서 '['로 시작해야하지만 어떻게 든 제대로 처리 할 수 없습니다.
이렇게 올바르게 구문 분석하는 방법은 무엇입니까?
확인. 나는 아직도 혼란 스럽다. jsoarray에는 많은 요소 (JSONObjects)가 있습니다. 첫 번째 요소에 액세스하려고한다고 가정 해 봅시다. JSONObject foo = jsoarray.getJSONObject (0); foo는 키가 많이있다 : 나는 "profile_image_url는"이 어떤 값을 알고 싶습니다 등 profile_image_url, created_at, tweeter_id을, 그래서 나는이 작업을 수행 : 아직도 tweeter_profile_image_url = foo.getString ("profile_image_url") 을 그리고 충돌. 흠 ... – anta40
JSONObject의 키가 존재하지 않을 가능성이있는 경우 getString 대신 optString을 사용하십시오. 그렇지 않으면 JSONException이 발생합니다. –
방금 시도 : tweeter_profile_image_url = foo.optString ("profile_image_url"); 그리고 여전히 충돌합니다. 하지만이 시도 : Dialog.inform ("foo.length() :"+ foo.length()); 메시지 상자에 올바른 11이라고 표시됩니다. – anta40