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 ee94a21215 Added travis file 10 years ago
json-path Fixed constructor in ConversionException 10 years ago
json-path-assert replace usage of JsonProviderFactory in other modules 10 years ago
json-path-web-test Reworked conversion handling. 10 years ago
.gitignore Ignore my TODO list 10 years ago
.travis.yml Added travis file 10 years ago
LICENSE initial commit 14 years ago
Procfile Fixed Heroku proc file. 10 years ago
README Update README 11 years ago
jsonpath.png improvements 14 years ago
pom.xml GsonProvider 10 years ago
system.properties Need Java 1.7 for Heroku web app. 10 years ago

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