2012-09-20 62 views
0

我想驗證一個字符串作爲來自服務器的響應。響應必須是有效的JSON字符串。有時,當用戶通過需要身份驗證的網絡或發生PHP錯誤時,響應不是有效的JSON。Android JSON離線驗證

Android解析器JSONTokener在解析它們之前不驗證字符串,所以在這種情況下,應用程序會拋出JSONException並強制關閉。

我發現了異常,但應用程序仍在關閉。

我的問題是:是否有任何JSON驗證器的對象和字符串首先驗證它們,並避免解析它們,如果他們有一個無效格式?

另一種解決方案是檢查字符串[0]是否具有「{」或「[」,但該解決方案不夠優雅,並且會錯過許多錯誤。所以我想使用完整的JSON驗證器。

在此先感謝。

+0

http://jsontools.berlios.de/拋出的圖書館提出了一個JsonSyntaxException - 你確定這是唯一拋出的異常嗎? –

+0

是的,這是JSONException,android並沒有很好地抓住它。參考 - > http://developer.android.com/reference/org/json/JSONException.html 第7行上的類概述。 – Miguel

回答

1

你在使用GSON嗎?

如果是這樣解析畸形的JSON字符串

時,如果使用android.util.JsonReader一個MalformedJsonException由JsonReader

+0

謝謝,你的回答幫了我很多。最後,我使用json-simple來避免Android應用程序觸及JSONException。我將.jar導入到項目中,現在我可以在解析它們之前驗證JSON。 Java有很多驗證器/解析器可用,所以如果任何人有同樣的問題,也許Casabian說GSON可以幫助你。 www.json.org上提供了針對不同編程語言的JSON驗證器/解析器列表。 感謝您的支持。 Casabian,我想喲投票你的答案,但我不能。我需要更多的聲譽,我會做,當我有。謝謝;) – Miguel

+0

投票並標記爲有效答案,因爲我答應:) – Miguel