26

I want to parse this with 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]
]

Can you help with that please?

ArjunShankar
  • 23,020
  • 5
  • 61
  • 83
Kheiri
  • 385
  • 1
  • 4
  • 8

3 Answers3

50

If the object is:

[
  [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]
]

Then "$[0]" will return:

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

And "$[1]" will return:

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

You can do it two levels deep as well. "$[0][4]" will return:

205

You can also extract the elements of the array into a list with "$[*]", which will return a list of 2 elements. The first being:

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

and the second being:

[50.3058858494047,-0.976070494820637,"CLASS B",9,239,0,"UK",2750350,21,2]
neontapir
  • 4,698
  • 3
  • 37
  • 52
ArjunShankar
  • 23,020
  • 5
  • 61
  • 83
0

Using DefiantJS, you can search a JSON structure with XPath syntax. This library extends the global object JSON with a search function.

In this scenario, you can write something like this;

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, '//*/*/*' );

Check out this fiddle; http://jsfiddle.net/hbi99/5NfeM/

Hakan Bilgin
  • 1,113
  • 12
  • 11
0

This works for me

JsonPath.with(jsonResponse).param("name", "getName").get("findAll { a -> a.name == name  }")
Walery Strauch
  • 6,792
  • 8
  • 50
  • 57