安全地访问嵌套的json元素

时间:2015-03-23 09:25:37

标签: javascript json

简单的javascript / json问题。

在我的代码中,我从一个来源中找到一个变量的值(我依次尝试每个变量,直到找到一个不是undefined的变量)。其中一个来源是一个具有多个元素级别的json对象,并非所有元素都可以保证填充。

例如,假设我需要的数据位于options.levelA.levelB.levelC.dataThatINeed。这些级别都不能保证设置,甚至包括选项变量本身。

为了避免运行时错误(尝试访问'undefined'的子元素),访问dataThatINeed的唯一安全方法如下:

var data = (options && options.levelA && options.levelA.levelB && options.levelA.levelB.levelC && options.levelA.levelB.levelC.dataThatINeed) || 'default';

这似乎是一种非常不优雅的方式,并且错误(错别字等)的真正可能性会随着所有这些级别而下滑。我想知道是否有更好的做法可以采用。很遗憾,您无法直接访问options.levelA.levelB.levelC.dataThatINeed,如果undefined(或任何更高级别)dataThatINeed,则返回undefined,而不是可能会抛出错误。< / p>

感谢。

0 个答案:

没有答案