JSONPath使用(fastjson在1.2.0之后版本)


来自: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。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM