【问题标题】:Evaluate Json - nested JSON path is provided as string [duplicate]评估 Json - 嵌套 JSON 路径以字符串形式提供 [重复]
【发布时间】:2013-08-16 08:42:53
【问题描述】:

我有一个带有嵌套 JSON 对象路径的字符串:

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

如何评估该路径中的 JSON?现在我用

eval(path)

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

【问题讨论】:

  • eval 只有在不必要地使用它时才是 evil,因为它比其他形式的索引慢。鉴于选择器 eval 的格式似乎是一个合理的解决方案。如果可能的话,我实际上会替换你的路径系统,但这似乎不太可能。
  • 你的previous question有什么不同?另外,正如我对您的另一个问题所评论的那样,没有“JSON 路径”这样的东西,您的问题与 JSON 无关。
  • @FelixKling 我不想使用 eval()
  • @SreekeshOkky:您在上一个问题中也说过同样的话:“如何替换这种对 eval 的使用”。那么区别是什么?如果没有,请不要重复同样的问题。

标签: javascript jquery json eval


【解决方案1】:

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

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

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

要了解 XPath 的工作原理,请查看此 XPath Evaluator 工具:
http://defiantjs.com/#xpath_evaluator

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 2020-11-20
    • 2012-01-04
    • 2016-11-23
    • 2017-10-25
    • 2011-09-09
    • 2013-08-16
    • 2021-12-05
    相关资源
    最近更新 更多