Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript尝试捕获json解析_Javascript_Json_Try Catch - Fatal编程技术网

javascript尝试捕获json解析

javascript尝试捕获json解析,javascript,json,try-catch,Javascript,Json,Try Catch,我有几个来自服务器的json对象。目前,我正在使用浏览器的json功能(我的应用程序只支持现代浏览器)将json解析为对象 我应该使用try/catch来使我的应用程序更加健壮,还是使用try/catch会产生另一组问题?使用try/catch块的一般规则是,只有在您100%知道下一步该做什么时才使用 换句话说,如果由于JSON对象解析失败而无法继续应用程序流,则抛出错误或不要使用try/catch 除此之外,您还可以使用json2.js或任何其他支持原生JSON的库来支持老式浏览器。try..

我有几个来自服务器的json对象。目前,我正在使用浏览器的json功能(我的应用程序只支持现代浏览器)将json解析为对象


我应该使用try/catch来使我的应用程序更加健壮,还是使用try/catch会产生另一组问题?

使用
try/catch
块的一般规则是,只有在您100%知道下一步该做什么时才使用

换句话说,如果由于JSON对象解析失败而无法继续应用程序流,则抛出错误或不要使用
try/catch


除此之外,您还可以使用
json2.js
或任何其他支持原生JSON的库来支持老式浏览器。

try..catch不是解决问题的神奇构造。问题是,你会在你的catch{}子句中加入什么

如果json被破坏,您是否可以做一些有用的事情。让你确保应用程序的状态再次正确的东西,那么它就有意义了


但是,您收到损坏json的机会有多大?如果您自己生成并解析json,那么可能性很低

响应的验证应该在服务器端,而不是客户端。
因此,您不必担心解析是否会失败,(除非程序员失败了…)


客户端验证在服务器端重新进行,但不是相反。

这句话对我来说没有任何意义。这只是将json字符串解析为对象,这是一项非常常见的任务。@jAndy。json验证应该在服务器端完成。也许我没有正确回答这个问题,但我认为它(再次)只是在客户端解析json字符串,这种情况经常发生。当然,你可以争辩说,你只是“期望”那些字符串是正确的,但是我认为在客户端进行同样的操作没有问题,因为双引号键名是一个常见的错误。@jAndy。您可以检查是否需要,但您应该能够信任服务器。如果你想做双重检查,并愿意得到性能的打击,你可以。实际上它的个人偏好。我知道即使我收到了坏数据,我的应用程序也会继续工作,而且我处理得很好,所以我睡得更好。