source: Dev/trunk/src/client/dojox/jsonPath/README @ 532

Last change on this file since 532 was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 6.5 KB
Line 
1-------------------------------------------------------------------------------
2dojox.jsonPath
3-------------------------------------------------------------------------------
4Version 1.0
5Release date: 11/14/2007
6-------------------------------------------------------------------------------
7Project state: beta
8-------------------------------------------------------------------------------
9Project authors
10        Dustin Machi
11        Kris Zyp
12-------------------------------------------------------------------------------
13Project description
14
15jsonPath is a query system similar in idea to xpath, but for use against
16javascript objects.  This code is a port of the jsonPath code at
17http://code.google.com/p/jsonpath/.  It was contributed under CLA by Stefan
18Goessner.  Thanks Stefan!
19
20-------------------------------------------------------------------------------
21Dependencies:
22
23Dojo Core (package loader).
24-------------------------------------------------------------------------------
25Documentation
26
27Usage:
28
29var matches = dojox.jsonPath.query(objectToQuery, jsonPathExpresson)
30
31Expressions:
32
33        $                       The Root Object
34        @                       The current object/element
35        . or []                 The child operator
36        ..                      Recursive descent
37        *                       all objects
38        []                      subscript operator
39        [,]                     Union operator
40        [start:end:step]        array slice operator
41        ?()                     applies a filter/script expression
42        ()                      script expresions
43
44        some examples:
45
46        Given the following test data set:
47
48        var json =
49                  { "store": {
50                        "book": [
51                          { "category": "reference",
52                                "author": "Nigel Rees",
53                                "title": "Sayings of the Century",
54                                "price": 8.95
55                          },
56                          { "category": "fiction",
57                                "author": "Evelyn Waugh",
58                                "title": "Sword of Honour",
59                                "price": 12.99
60                          },
61                          { "category": "fiction",
62                                "author": "Herman Melville",
63                                "title": "Moby Dick",
64                                "isbn": "0-553-21311-3",
65                                "price": 8.99
66                          },
67                          { "category": "fiction",
68                                "author": "J. R. R. Tolkien",
69                                "title": "The Lord of the Rings",
70                                "isbn": "0-395-19395-8",
71                                "price": 22.99
72                          }
73                        ],
74                        "bicycle": {
75                          "color": "red",
76                          "price": 19.95
77                        }
78                  }
79                };
80
81        Here are some example queries and their output:
82
83        $.store.book[*].author
84        ["Nigel Rees","Evelyn Waugh","Herman Melville","J. R. R. Tolkien"]
85
86        $..author
87        ["Nigel Rees","Evelyn Waugh","Herman Melville","J. R. R. Tolkien"]
88
89        $.store.*
90        [[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}],{"color":"red","price":19.95}]
91
92        $.store..price
93        [8.95,12.99,8.99,22.99,19.95]
94
95        $..book[(@.length-1)]
96        [{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}]
97
98        $..book[-1]
99        [{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}]
100
101        $..book[0,1]
102        [{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99}]
103       
104        $..book[:2]
105        [{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99}]
106
107        $..book[?(@.isbn)]
108        [{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}]
109
110        $..book[?(@.price<10)]
111        [{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99}]
112
113        $..*
114        [{"book":[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}],"bicycle":{"color":"red","price":19.95}},[{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}],{"color":"red","price":19.95},{"category":"reference","author":"Nigel Rees","title":"Sayings of the Century","price":8.95},{"category":"fiction","author":"Evelyn Waugh","title":"Sword of Honour","price":12.99},{"category":"fiction","author":"Herman Melville","title":"Moby Dick","isbn":"0-553-21311-3","price":8.99},{"category":"fiction","author":"J. R. R. Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99},"reference","Nigel Rees","Sayings of the Century",8.95,"fiction","Evelyn Waugh","Sword of Honour",12.99,"fiction","Herman Melville","Moby Dick","0-553-21311-3",8.99,"fiction","J. R. R. Tolkien","The Lord of the Rings","0-395-19395-8",22.99,"red",19.95]
115
116
117-------------------------------------------------------------------------------
118Installation instructions
119
120Grab the following from the Dojo SVN Repository:
121http://svn.dojotoolkit.org/var/src/dojo/dojox/trunk/jsonPath
122
123Install into the following directory structure:
124/dojox/jsonPath/
125
126...which should be at the same level as your Dojo checkout.
Note: See TracBrowser for help on using the repository browser.