2012-02-15 17 views
11

Quiero analizar esto con JSONPath:archivo de matriz Analizar JSON con 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] 
] 

le puede ayudar con eso por favor?

+1

_¿Qué quieres analizar? ¿Idioma? – ArjunShankar

+0

Quiero saber la JSONPATH, p. $. * para obtener cualquier elemento de la matriz. – salem12

+0

Así que desea utilizar JSONPath, cuyas implementaciones para varios idiomas están disponibles en http://code.google.com/p/json-path/ y http://goessner.net/articles/JsonPath/ – ArjunShankar

Respuesta

26

Si el objeto es:

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

Entonces "$[0]" volverá:

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

Y "$[1]" volverá:

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

usted puede hacerlo dos niveles de profundidad también. "$[0][4]" volverá:

205 

También puede extraer los elementos de la matriz en una lista con "$[*]", que devolverá una lista de 2 elementos. El primer ser:

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

y el segundo es:

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

gracias mucho, eso fue realmente útil. – salem12

0

Usando DefiantJS, se puede buscar una estructura JSON con la sintaxis XPath. Esta biblioteca amplía el objeto global JSON con una función de búsqueda.

En este escenario, puede escribir algo como esto;

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

Echa un vistazo a este violín; http://jsfiddle.net/hbi99/5NfeM/

0

Esto funciona para mí

JsonPath.with (jsonResponse) .PARAM ("nombre", "getNombre") obtener ("findAll {a -> a.name == nombre}").

Cuestiones relacionadas