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.
Jochen Berger c9c295d9aa Merge remote-tracking branch 'upstream/master' into use-slf4j 11 years ago
json-path Merge remote-tracking branch 'upstream/master' into use-slf4j 11 years ago
json-path-assert Added internal logging support. 11 years ago
.gitignore initial commit 14 years ago
LICENSE initial commit 14 years ago
README Improved list filter. Updated POM files. 11 years ago
jsonpath.png improvements 14 years ago
pom.xml Merge remote-tracking branch 'upstream/master' into use-slf4j 11 years ago

README

Java DSL for reading and testing JSON documents.

------------------------------------------
0.9 2013-08-19
------------------------------------------
- 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]";

JsonPath.read(JSON_ARRAY, "$[3]") => 7 //no slicing
JsonPath.read(JSON_ARRAY, "$[0,1,2]") => [1,3,5] //no slicing, multi index
JsonPath.read(JSON_ARRAY, "$[:3]") => [1,3,5] //from index 0 (inclusive) until index 3 (exclusive)
JsonPath.read(JSON_ARRAY, "$[1:5]") => [3, 5, 7, 8] //from index 1 (inclusive) until index 5 (exclusive)
JsonPath.read(JSON_ARRAY, "$[1:15]") => IndexOutOfBoundsException
JsonPath.read(JSON_ARRAY, "$[-3:]") => [8, 13, 20] //from tail grab 3

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

- 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