2012-02-15 28 views
11

Tôi muốn phân tích này với JSONPath:Parse JSON tập mảng với 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] 
] 

Bạn có thể giúp với điều đó xin vui lòng?

+1

_Bạn muốn phân tích cú pháp nó thành gì? Ngôn ngữ? – ArjunShankar

+0

Tôi muốn biết JSONPATH ví dụ: $. * để nhận bất kỳ mục nào của mảng. – salem12

+0

Vì vậy, bạn muốn sử dụng JSONPath, có triển khai cho một số ngôn ngữ có sẵn tại http://code.google.com/p/json-path/ và http://goessner.net/articles/JsonPath/ – ArjunShankar

Trả lời

26

Nếu đối tượng là:

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

Sau đó "$[0]" sẽ trở lại:

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

"$[1]" sẽ trở lại:

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

Bạn có thể làm điều đó hai cấp độ sâu là tốt. "$[0][4]" sẽ trở lại:

205 

Bạn cũng có thể trích xuất các phần tử của mảng vào một danh sách với "$[*]", mà sẽ trả về một danh sách của 2 yếu tố này. Các phúc đầu tiên:

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

và hạnh phúc thứ hai:

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

cảm ơn rất nhiều, rằng thực sự hữu ích. – salem12

0

Sử dụng DefiantJS, bạn có thể tìm kiếm một cấu trúc JSON với cú pháp XPath. Thư viện này mở rộng đối tượng toàn cầu JSON bằng chức năng tìm kiếm.

Trong trường hợp này, bạn có thể viết một cái gì đó như thế này;

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

Xem câu đố này; http://jsfiddle.net/hbi99/5NfeM/

0

này làm việc cho tôi

JsonPath.with (jsonResponse) .param ("tên", "getName") nhận được ("FindAll {a -> a.name == name}").

Các vấn đề liên quan