2012-09-20 3 views
0

서버에서 응답으로 가져온 하나의 문자열의 유효성을 검사하고 싶습니다. 응답은 유효한 JSON 문자열이어야합니다. 때로는 사용자가 인증이 필요한 네트워크를 통과하거나 PHP 오류가 발생하면 응답이 유효한 JSON이 아닙니다.Android JSON 오프라인 확인

Android 파서 JSONTokener는 파싱하기 전에 문자열의 유효성을 검사하지 않으므로 해당 경우 응용 프로그램에서 JSONException을 throw하고 강제 종료합니다.

나는 예외를 잡았지만 응용 프로그램은 여전히 ​​닫혀 있습니다.

제 질문은 : 객체와 문자열에 대한 유효성 검사기가 있습니까? 먼저 유효성 검사를하고 유효하지 않은 형식의 구문 분석을 피하십시오.

또 다른 해결책은 string [0]에 "{"또는 "["가 있는지 확인하는 것이지만이 솔루션은 우아하지 않고 많은 오류가 누락됩니다. 그래서 전체 JSON 검사기를 사용하고 싶습니다.

미리 감사드립니다.

+0

http://jsontools.berlios.de/에 의해 발생하는 잘못된 JSON 문자열

을 구문 분석 할 때 그래서 라이브러리는 JsonSyntaxException을 제기하는 경우 - 이것이 유일한 예외라고 확신합니까? –

+0

예, JSONException이었습니다. 안드로이드가 대부분의 시간을 잘 잡지 못합니다. 참조 -> http://developer.android.com/reference/org/json/JSONException.html 클래스 개요 섹션의 7 번. – Miguel

답변

1

GSON을 사용하고 있습니까?

당신이 MalformedJsonException을 android.util.JsonReader 사용하는 경우 JsonReader

+0

고마워, 너의 대답이 나에게 많은 도움이되었다. 마지막으로 json-simple을 사용하여 Android 앱이 JSONException에 도달하는 것을 피합니다. 프로젝트에 .jar 파일을 가져 와서 JSON을 파싱하기 전에 유효성을 검사 할 수있게되었습니다. Java 용 유효성 검사기/파서가 많이 있으므로, Casona가 GSON이 여러분에게 도움을 줄 수 있다고 말한 것과 같은 문제가있는 사람이 있으면 알려주세요. 다양한 프로그래밍 언어로 www.json.org에서 제공되는 JSON 검사기/파서의 목록이 많이 있습니다. 지원해 주셔서 감사합니다. Casabian, 나는 너의 대답을 위해 너를 투표하고 싶다. 그러나 나는 그럴 수 없다. 나는 내가 할 때할만한 평판이 더 필요해. 고마워;) – Miguel

+0

내가 약속 한대로 투표하고 유효한 응답으로 표시했습니다. :) – Miguel

관련 문제