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
1706aafd82
|
11 years ago | |
---|---|---|
json-path | 11 years ago | |
json-path-assert | ||
json-path-web-test | 11 years ago | |
.gitignore | 11 years ago | |
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