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 ...
随机推荐
- iOS App启动图不显示的解决办法.
1. 正常来说,启动图以及App图标需按照命名规则命名, 但是命名不规范并不影响显示; 2. 设置启动图的两种方法: (1) iOS 8—xcode 6 之后新出LaunchScreen.s ...
- lua源码分析 伪索引
Lua 提供了一个 注册表, 这是一个预定义出来的表, 可以用来保存任何 C 代码想保存的 Lua 值. 这个表可以用有效伪索引 LUA_REGISTRYINDEX 来定位. 任何 C 库都可以在这张 ...
- ZOJ 2676 Network Wars(最优比例最小割)
Network Wars Time Limit: 5 Seconds Memory Limit: 32768 KB Special Judge Network of Bytelan ...
- set和dict
dict属于mapping类型 from collections.abc import Mapping,MutableMapping from collections.abc import __all ...
- git - 搭建最简单的git server
以下操作都在 centos7 下进行,但同样适用于centos 6. 1. 安装git-core yum -y install git 添加git用户,用于启动管理git仓库 useradd git ...
- 'NoneType' object has no attribute '__getitem__'
报错 'NoneType' object has no attribute '__getitem__' 你 result 返回的是 None ,所以 result [0] 取不了值
- nodeJS学习(10) --- 事件模块
转载:http://www.cnblogs.com/zhongweiv/p/nodejs_events.html 目录 简介及资料 事件常用函数及使用 emitter.on(event, listen ...
- 【05】react 之 组件state
1.1. 状态理解 React的数据流:由父节点传递到子节点(由外到内传递),如果顶层组件某个prop改变了,React会向下传递,重新渲染所有使用过该属性的组件.除此之外React 组件内部还具有 ...
- RazorExtensions Templated Razor Delegates
原文发布时间为:2011-04-27 -- 来源于本人的百度文章 [由搬家工具导入] Templated Razor Delegates David Fowler turned me on to a ...
- 剖析CPU温度监控技术【转】
转自:http://blog.csdn.net/hunanchenxingyu/article/details/46476545 迄今为止还没有一种cpu散热系统能保证永不失效.失去了散热系统保护伞的 ...