我想知道是否可以验证JSONPath表达式。
我的JSONPath是$.phoneNumbers[:1].type
我的json如下:
{
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
}
]
}
我想知道我是否正在使用正确/有效的JSONPath表达式。
答案 0 :(得分:0)
你可以到http://jsonpath.curiousconcept.com/并在那里试一试。
或者你可以用编程语言来做。
以下是使用jsonpath gem:
在Ruby中执行此操作的方法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)
答案 1 :(得分:0)
@Parag A - 我刚刚编写了一个javascript库,您可以使用它来查询带有XPath的JSON结构(与JSONPath相反,它是标准化的)。使用此XPath评估程序,您可以粘贴JSON结构并就地验证XPath查询:
http://www.defiantjs.com/#xpath_evaluator
将您的问题和答案放在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,搜索方法总是返回一个匹配选择的数组(如果没有找到匹配则为空数组)。