JsonPath仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kalle Stenflo 0d8192170a Code clean up and JacksonProvider improvements. 11 years ago
json-path Code clean up and JacksonProvider improvements. 11 years ago
json-path-assert Optimized imports and removed file headers. 11 years ago
json-path-web-test Code clean up and JacksonProvider improvements. 11 years ago
.gitignore
LICENSE
README
jsonpath.png
pom.xml

README

Java DSL for reading and testing JSON documents.

------------------------------------------
0.9.0 2013-09-26
------------------------------------------
- OSGI ready
- Bug fixes
- Performance improvements

- select multiple attributes
List<Map<String, Object>> matches = JsonPath.read(DOCUMENT, "$.store.book[*].['category', 'title']");
Map<String, Object> match = JsonPath.read(DOCUMENT, "$.store.bicycle['color', 'display-price']");

- Array operations and slicing improved
String JSON_ARRAY = "[1, 3, 5, 7, 8, 13, 20]";

//no slicing
JsonPath.read(JSON_ARRAY, "$[3]") => 7

//no slicing, multi index
JsonPath.read(JSON_ARRAY, "$[0,1,2]") => [1,3,5]

//from index 0 (inclusive) until index 3 (exclusive)
JsonPath.read(JSON_ARRAY, "$[:3]") => [1,3,5]

//from index 1 (inclusive) until index 5 (exclusive)
JsonPath.read(JSON_ARRAY, "$[1:5]") => [3, 5, 7, 8]
JsonPath.read(JSON_ARRAY, "$[1:15]") => [3, 5, 7, 8, 13, 20]

//from tail grab 3
JsonPath.read(JSON_ARRAY, "$[-3:]") => [8, 13, 20]

//grab no 3 from tail
JsonPath.read(JSON_ARRAY, "$[3:]") => 8

//grab no 3 from tail (same as above)
JsonPath.read(JSON_ARRAY, "$[(@.length -3)]") =>

- improved filter on primitives. Now you can compare with @
String json = "{\"contents\": [1,2,3]}";
List<Integer> result = JsonPath.read(json, "$.contents[?(@ == 2)]");



------------------------------------------
0.8.1 2012-04-16
------------------------------------------
- Fixed issue http://code.google.com/p/json-path/issues/detail?id=11
- HttpProvider SPI
- Improved JavaDoc
- More experimental work on JsonModel


------------------------------------------
0.8.0 2012-03-08
------------------------------------------
- Fixed issue http://code.google.com/p/json-path/issues/detail?id=8
- Fixed issue http://code.google.com/p/json-path/issues/detail?id=9
- Improved compliance
- Fixed bug with '=' sign when evaluating expressions
- OSGi support added
- Support for custom array filters in JsonPath
- Lots of new features in JsonModel


------------------------------------------
0.5.6 2012-02-09
------------------------------------------
- Replaced regexp with custom tokenizer
- Removed static declaration of JSON_PARSER
- Introduced SPI for JsonProvider
- Elaborating new concept with JsonModel

------------------------------------------
0.5.5
------------------------------------------
- Improved JSON bracket notation. $['store']['book'][*]['author name']
properties can also contain '.' eg $['store']['book'][*]['author.name']

------------------------------------------
0.5.4
------------------------------------------
- Replaced com.googlecode.json-simple with net.minidev.json-smart
- Introduced different parse modes, JsonPath.SLACK_MODE and JsonPath.STRICT_MODE (the slack mode lets you use single quotes or even no quotes at all)

------------------------------------------
0.5.3
------------------------------------------
- Major refactoring
- JsonPath does not always produce a List as response

------------------------------------------
0.5.2
------------------------------------------
- Fixed issue that path was never considered definite if containing a ':'
- Bracket notation is now first class citizen $.foo.bar == $.['foo'].['bar']
- Added JsonAsserter.assertNotDefined(String path) to allow checks for negative existence of a path