2013-08-16 46 views
2

我有携带嵌套JSON对象的路径的字符串:评估JSON - 嵌套的JSON路径是作为字符串

var path = 'p_Data[0]["BusinessUnit"][0]["BusinessUnit"]' 

如何在这条道路评估JSON?现在我用

eval(path) 

我知道使用eval是不好的。如何在不使用eval的情况下做到这一点?

+1

* EVAL *仅*邪恶*当使用不必要,因为它比其他形式的索引慢。鉴于选择器eval的格式似乎是一个合理的解决方案。如果可能的话,我实际上会替换你的路径系统,但这似乎不太可能。 –

+0

与[上一个问题]有什么区别(http://stackoverflow.com/questions/18269046/how-to-replace-eval-to-update-value-in-json-when-json-path-is-pro-disable -as字符串)?另外,正如我对你的另一个问题所评论的那样,没有这样的“JSON路径”,你的问题与JSON无关。 –

+0

@FelixKling我不wana使用eval() – Okky

回答

1

您可以使用使用方法“search”扩展全局对象JSON的DefiantJS(http://defiantjs.com)。使用这种方法,你可以用XPath表达式,这样的搜索您的JSON结构:

JSON.search(data, '//p_Data[0]/BusinessUnit[0]/BusinessUnit'); 

由于没有例如JSON结构,建议上述可能的工作。如果您发布了您的结构示例,则可以提供我的建议的JSFiddle版本。

要获得的XPath如何工作的想法,看看这个XPath计算器工具:
http://defiantjs.com/#xpath_evaluator

相关问题