是否可以验证JSONPath表达式?

是否可以验证JSONPath表达式?,jsonpath,Jsonpath,我想知道是否可以验证JSONPath表达式 我的JSONPath是$。电话号码[:1]。键入 我的json如下所示: { "phoneNumbers": [ { "type" : "iPhone", "number": "0123-4567-8888" }, { "type" : "home", "number": "0123-4567-8910" } ] } 我想知道我是否

我想知道是否可以验证JSONPath表达式

我的JSONPath是
$。电话号码[:1]。键入

我的json如下所示:

{      
  "phoneNumbers": [
     {
       "type"  : "iPhone",
       "number": "0123-4567-8888"
     },
     {
       "type"  : "home",
       "number": "0123-4567-8910"
     }
  ]
}
我想知道我是否使用了正确/有效的JSONPath表达式。

您可以在那里尝试

也可以用编程语言来实现

下面是如何在Ruby中使用jsonpath gem实现这一点:

require 'jsonpath'

data=<<-EOS
{      "phoneNumbers":
 [
     {
       "type"  : "iPhone",
       "number": "0123-4567-8888"
     },
     {
       "type"  : "home",
       "number": "0123-4567-8910"
     }
 ]
}
EOS

JsonPath.new("$.phoneNumbers[:1].type").on(data)
需要“jsonpath”

data=@paraga-A-我刚刚编写了一个javascript库,您可以使用XPath查询JSON结构(与JSONPath相反,它是标准化的)。使用此XPath计算器,您可以粘贴到JSON结构中,并在适当的位置验证XPath查询:

将您的问题和答案放在javascript代码中,看起来如下所示:

var obj = {      
  "phoneNumbers": [
     {
       "type"  : "iPhone",
       "number": "0123-4567-8888"
     },
     {
       "type"  : "home",
       "number": "0123-4567-8910"
     }
  ]
};

var qry = JSON.search(obj, '//phoneNumbers[1]/type');
// qry[0] = 'iPhone'
Defiant扩展了全局对象JSON,搜索方法总是返回一个带有匹配选择的数组(如果没有找到匹配项,则返回空数组)。

“正确”和“有效”是两个不同的东西——如果尝试使用无效的JSONPath,您可能会出错,但您是唯一能够评估JSONPath是否“正确”的人因为除了你之外,没有人知道你在用你的路径选择什么。