Разобрать файл массива JSON с помощью JSONPATH

Я хочу проанализировать это с помощью 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]
]

Можете ли вы помочь с этим, пожалуйста?


person Kheiri    schedule 15.02.2012    source источник
comment
Что вы хотите разобрать? Язык?   -  person ArjunShankar    schedule 15.02.2012
comment
Я хочу знать JSONPATH, например. $.* для получения любого элемента массива.   -  person Kheiri    schedule 15.02.2012
comment
Итак, вы хотите использовать JSONPath, реализации которого для нескольких языков доступны по адресу code.google.com/. p/json-path и goessner.net/articles/JsonPath   -  person ArjunShankar    schedule 15.02.2012


Ответы (3)


Если объект:

[
  [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]
person ArjunShankar    schedule 15.02.2012

Используя DefiantJS, вы можете искать структуру JSON с синтаксисом XPath. Эта библиотека расширяет глобальный объект 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/

person Hakan Bilgin    schedule 18.05.2014

Это работает для меня

JsonPath.with(jsonResponse).param("name", "getName").get("findAll { a -> a.name == name  }")
person Jayen Chondigara    schedule 04.04.2016