最近在網上看了些
JSONPath
的入門例子。打算用Snack3
這個框架寫寫例子。json path
對`JSON的處理絕對是神器。java
{ "store": { "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, "isbn": "0-553-21311-3" }], "bicycle": { "color": "red", "price": 19.95 } } }
<dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.1.5.3</version> </dependency>
@Test public void demo1() { String json = "{\"store\":{\"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,\"isbn\":\"0-553-21311-3\"}],\"bicycle\":{\"color\":\"red\",\"price\":19.95}}}"; ONode n = ONode.load(json); Map map = n.select("$.store.book[0]").toObject(Map.class); System.out.println("category: " + map.get("category")); System.out.println("author: " + map.get("author")); System.out.println("title: " + map.get("title")); System.out.println("price: " + map.get("price")); System.out.println("========================"); List<String> list = n.select("$.store.book[*].author").toObject(List.class); for (String author : list) { System.out.println(author); } //java bean 泛型輸出,此處不打印了 List<BookModel> list2 = n.select("$.store.book") .toObject((new ArrayList<BookModel>(){}).getClass()); }
category: reference author: Nigel Rees title: Sayings of the Century price: 8.95 ======================== Nigel Rees Evelyn Waugh