22

我想用 JSONPath 解析这个:

[
  [50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4],
  [50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
]

你能帮忙吗?

4

3 回答 3

45

如果对象是:

[
  [50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4],
  [50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
]

然后"$[0]"会返回:

[50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4]

并将"$[1]"返回:

[50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]

你也可以做到两层。"$[0][4]"将返回:

205

您还可以使用 将数组的元素提取到一个列表中"$[*]",这将返回一个包含 2 个元素的列表。第一个是:

[50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4]

第二个是:

[50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
于 2012-02-15T14:40:31.753 回答
0

使用 DefiantJS,您可以使用 XPath 语法搜索 JSON 结构。该库使用搜索功能扩展了全局对象 JSON。

在这种情况下,您可以编写如下内容;

var data = [
  [50.4154134372953,-1.28486558931069,"CLASS B",9,205,0,"UK",431500382,3,4],
  [50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
],
search = JSON.search( data, '//*/*/*' );

看看这个小提琴;http://jsfiddle.net/hbi99/5NfeM/

于 2014-05-18T11:42:28.773 回答
0

这对我有用

JsonPath.with(jsonResponse).param("name", "getName").get("findAll { a -> a.name == name  }")
于 2016-04-04T10:02:59.510 回答