0

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

我的 JSONPath 是$.phoneNumbers[:1].type

我的json如下:

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

我想知道我是否使用了正确/有效的 JSONPath 表达式。

4

2 回答 2

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)
于 2013-11-30T14:35:26.583 回答
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,并且搜索方法总是返回一个带有匹配选择的数组(如果没有找到匹配项,则返回空数组)。

于 2014-01-04T06:08:03.197 回答