來自:http://blog.csdn.net/u011113654/article/details/50515515
1、JSON字符串轉對象
String jsonStr = "{ \"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}}}"; //Object jsonObject = JSON.parse(jsonStr); // 先解析JSON數據 JSONObject jsonObject = JSON.parseObject(jsonStr);
2、代碼實例
// 如果是json格式的字符串,則先解析為JSONObject,然后就能直接使用JSONPath了。
System.out.println("\n Book數目:" + JSONPath.eval(jsonObject, "$.store.book.size()")); System.out.println("第一本書title:" + JSONPath.eval(jsonObject, "$.store.book[0].title")); System.out.println("price大於10元的book:" + JSONPath.eval(jsonObject, "$.store.book[price > 10]")); System.out.println("price大於10元的title:" + JSONPath.eval(jsonObject, "$.store.book[price > 10][0].title")); System.out.println("category(類別)為fiction(小說)的book:" + JSONPath.eval(jsonObject, "$.store.book[category = 'fiction']")); System.out.println("bicycle的所有屬性值" + JSONPath.eval(jsonObject, "$.store.bicycle.*")); System.out.println("bicycle的color和price屬性值" + JSONPath.eval(jsonObject, "$.store.bicycle['color','price']"));
3、結果
System.out.println("\n Book數目:" + JSONPath.eval(jsonObject, "$.store.book.size()")); System.out.println("第一本書title:" + JSONPath.eval(jsonObject, "$.store.book[0].title")); System.out.println("price大於10元的book:" + JSONPath.eval(jsonObject, "$.store.book[price > 10]")); System.out.println("price大於10元的title:" + JSONPath.eval(jsonObject, "$.store.book[price > 10][0].title")); System.out.println("category(類別)為fiction(小說)的book:" + JSONPath.eval(jsonObject, "$.store.book[category = 'fiction']")); System.out.println("bicycle的所有屬性值" + JSONPath.eval(jsonObject, "$.store.bicycle.*")); System.out.println("bicycle的color和price屬性值" + JSONPath.eval(jsonObject, "$.store.bicycle['color','price']"));
4、JSONPath.eval返回的是Object,可以強制轉化為JSONArray和JSONObject。