我有幾個來自服務器的json對象。目前,我正在使用瀏覽器的json功能(我的應用程序僅支持現代瀏覽器)將json解析爲對象。javascript試圖抓住json解析
我應該使用try/catch來使我的應用程序更健壯,還是使用try/catch創建另一組問題?
我有幾個來自服務器的json對象。目前,我正在使用瀏覽器的json功能(我的應用程序僅支持現代瀏覽器)將json解析爲對象。javascript試圖抓住json解析
我應該使用try/catch來使我的應用程序更健壯,還是使用try/catch創建另一組問題?
try..catch不是一個讓問題消失的神奇構造。問題是,你會在你的catch {}子句中加入什麼?
如果你可以做一些有用的東西,如果json壞了。有些東西可以讓你確保應用程序的狀態再次正確,那麼這是有道理的。
但是,你會收到破碎的json的機會是什麼?如果您自己生成並解析json,則機會很低。
使用try/catch
塊的一般規則是,只有在您100%知道接下來要做什麼時纔會使用。
換句話說,如果由於解析JSON對象失敗而無法繼續應用程序流,請拋出錯誤或不要使用try/catch
。
除此之外,您可以使用json2.js
或任何其他提供原生JSON支持的庫來支持舊版瀏覽器。
響應的驗證應該在服務器上,而不是在客戶端上。
所以你不必擔心,如果解析將失敗(除非程序員失敗...)
客戶端驗證服務器端relie而不是周圍的其他方式。
該聲明對我沒有任何意義。它只是將json-strings解析成對象,這是一項非常普遍的任務。 – jAndy 2012-04-27 12:46:35
@jAndy。 json驗證應該在服務器端完成。 – gdoron 2012-04-27 12:48:08
也許我沒有得到他的問題,但我認爲它(再次)只是解析客戶端上的json-string,這很好。當然,你可以爭辯說,你只是「期待」這些字符串是正確的,但是我認爲沒有任何問題也會導致客戶端,因爲雙引號的鍵名是一個常見的錯誤。 – jAndy 2012-04-27 12:50:58