json-path解析json方便可靠
JsonPath is to JSON what XPATH is to XML, a simple way to extract parts of a given document. JsonPath is available in many programming languages such as Javascript, Python and PHP. Now also in Java!News2013-09-27 Released 0.9.0 bug fixes, general improvements2012-04-16 Released 0.8.1 bug fixes, improved docs, general improvements2012-03-08 Released 0.8.0 bug fixes, Filter builder, Json model, POJO mapping (optional) and compliance improvements.2012-02-09 Released 0.5.6 including bug fixes and performance improvements.Given{ "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 } }}ReadAll authors:List<String> authors = JsonPath.read(json, "$.store.book[*].author");Author of first book in store:String author = JsonPath.read(json, "$.store.book[1].author");All books with category = "reference"List<Object> books = JsonPath.read(json, "$.store.book[?(@.category == 'reference')]");List<Object> books = JsonPath.read(json, "$.store.book[?]", filter(where("category").is("reference")));All books that cost more than 10 USDList<Object> books = JsonPath.read(json, "$.store.book[?(@.price > 10)]");List<Object> books = JsonPath.read(json, "$.store.book[?]", filter(where("price").gt(10)));All books that have isbnList<Object> books = JsonPath.read(json, "$.store.book[?(@.isbn)]");List<Object> books = JsonPath.read(json, "$.store.book[?]", filter(where("isbn").exists(true)));Chained filtersFilter filter = Filter.filter(Criteria.where("isbn").exists(true).and("category").in("fiction", "reference"))List<Object> books = JsonPath.read(json, "$.store.book[?]", filter);Custom filtersFilter myFilter = new Filter.FilterAdapter<Map<String, Object>>(){ @Override public boolean accept(Map<String, Object> map) { return map.containsKey("isbn"); } };List<Object> books = JsonPath.read(json, "$.store.book[?]", myFilter);All prices in the documentList<Double> prices = JsonPath.read(json, "$..price");Compiled pathYou can pre compile a path and use it multiple timesJsonPath path = JsonPath.compile("$.store.book[*]");List<Object> books = path.read(json);AssertAsserts are made with Hamcrest matchersJsonAssert.with(json).assertThat("$.store.bicycle.color", Matchers.equalTo("red")) .assertThat("$.store.bicycle.price", Matchers.equalTo(19.95D));Add some static imports and you get thiswith(json).assertThat("$.store.bicycle.color", equalTo("red")) .assertThat("$.store.bicycle.price", equalTo(19.95D));The Hamcrest library contains a lot of different matchers and they can often be nested.with(json).assertThat("$..author", hasItems("Nigel Rees", "Evelyn Waugh")) .assertThat("$..author", is(collectionWithSize(equalTo(2))));with(json).assertThat("$.store.book[?(@.category == 'x')]", emptyCollection());If you don't find the matcher you need, roll your own.DownloadJson-path is available at Maven Central<dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <version>0.9.1</version></dependency><dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path-assert</artifactId> <version>0.9.1</version> <scope>test</scope></dependency>json-path解析json方便可靠的更多相关文章
- JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)
JMeter 是一个不错的负载和性能测试工具,我们也用来做 HTTP API 接口测试.我们的 API 返回结果为 JSON 数据格式.JSON 简介,JSON 教程. JSON 已经成为数据交换格式 ...
- JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
- Python | JSON 数据解析(Json & JsonPath)
一.什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一 ...
- JMeter 插件 Json Path 解析HTTP响应JSON数据
一.基本简介 JMeter 是一个不错的负载和性能测试工具,我们也用来做 HTTP API 接口测试.我们的 API 返回结果为JSON数据格式.JSON 简介,JSON 教程. JSON 已经成为数 ...
- SQL FOR JSON PATH 返回 json
--直接返回 age FOR JSON PATH --返回值 [{"name":"张学友","age":60}] select c1, c2 ...
- Python3基础 json.loads 解析json格式的数据,得到一个字典
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- JSON.parse 解析json字符串时,遇换行符报错
Json字符串转换成Json对象时候,有两种方式: 假设d是json字符串: 1,eval('(' + d + ')'). 2,JSON.parse(d): 但是以上方式有隐患,如果Json字符串有换 ...
- C#使用Json.NET解析Json
本文转载自 http://xiaosheng.me/2016/10/01/article25/ 最近在 C# 项目中需要使用到 Json 格式的数据,我简单上网搜索了一下,基本上有两种操作 Json ...
- Android原生生成JSON与解析JSON
JSON数据是一种轻量级的数据交换格式,在Android中通常应用于client与server交互之间的传输数据.像如今在网上有非常多解析JSON数据的jar包,可是归根究竟用的都是Android原生 ...
- scala解析json —— json4s 解析json方法汇总
使用json4s的框架,包括spark,flink 1.org.json4s 引入pom的方法 对于本地支持,引入以下依赖项添加到pom中 <dependency> <groupId ...
随机推荐
- 深入学习之mysql(四)聚合函数
聚合函数:COUNT统计记录的条数.SUM求和函数.AVG求平均值.MAX求最大值.MIN求最小值 一.COUNT练习: 1.统计学校一共有多少个学生: mysql> SELECT COUN ...
- 2015暑假训练(UVALive 5983 - 5992)线段树离线处理+dp
A: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83690#problem/A 题意:N*M的格子,从左上走到右下,要求在每个点的权值 ...
- drools6
<dependency> <groupId>org.drools</groupId> <artifactId>drools-core</artif ...
- /bin , /sbin , /usr/sbin , /usr/local/sbin 的区别
usr 是 UNIX Software Resource 的缩写,也就是 Unix操作系统软件资源 所放置的目录. 一 /bin:Essential user command binaries(for ...
- Java 学习(1): windows java 运行& 环境配置
Java 文件的运行 如下,创建了一个 名为"HelloWorld.java" 的 Java 文件: public class HelloWorld { public static ...
- 使用mapMutations扩展写法后参数传递的办法
在没使用扩展办法的时候,在组件当中通过下面方式进行传参 testMethods(data) { this.$store.commit("add",data) } 而使用了扩展函数了 ...
- 团体天梯赛 L3-001. 凑零钱
L3-001. 凑零钱 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现 ...
- sql语句中的[]中括号(转)
下面有关sql语句中[]的信息适用于Sql Server.Access等多种数据库. 1.sql语句中加[]是为了防止歧义,避免与系统保留关键字冲突,使计算机能识别.sql语句中有些字段可能是关键字, ...
- C 语言 和 python 调用 .so 文件
什么是静态库和动态库, 看一篇博客 http://www.cnblogs.com/skynet/p/3372855.html 现在,我们首先生成.so文件 首先, 我们写一个a.c文件 1 2 3 4 ...
- pyqt线程实现
# coding=utf-8 __author__ = 'a359680405' from PyQt5.QtCore import * from PyQt5.QtGui import * from P ...