JsonPath的应用

前面文章有介绍过org.json的JSONObject,及com.fasterxml.jackson.core的ObjectMapper,今天来介绍rest assured的JsonPath。

三种json处理类的不同:

比较对象所属包区别
ObjectMappercom.fasterxml.jackson.core可读Json,可写Json,可更新已经存在的Json
JSONObjectorg.json可读Json,可写Json,不可更改已经存在的Json
JsonPathio.rest-assured可读Json,不可写Json,不可更改已经存在的json

JsonPath

JsonPath用来解析Json格式的数据来获取其值,API 测试经常应用解析验证Json格式response body,详情参考官网JsonPath Class

JsonPath is an alternative to using XPath for easily getting values from a Object document. It follows the Groovy GPath syntax when getting an object from the document. You can regard it as an alternative to XPath for JSON

例如:下面Object文档

{ "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
    },
    { "category": "fiction",
      "author": "Herman Melville",
      "title": "Moby Dick",
      "isbn": "0-553-21311-3",
      "price": 8.99
    },
    { "category": "fiction",
      "author": "J. R. R. Tolkien",
      "title": "The Lord of the Rings",
      "isbn": "0-395-19395-8",
      "price": 22.99
    }
  ],
    "bicycle": {
      "color": "red",
      "price": 19.95
    }
  }
 }

To get a list of all book categories:

List<String> categories = with(Object).get("store.book.category");

Get the first book category:

String category = with(Object).get("store.book[0].category");

Get the last book category:

String category = with(Object).get("store.book[-1].category");

Groovy格式的解析:

Get all books with price between 5 and 15:

List<Map> books = with(Object).get("store.book.findAll { book -> book.price >= 5 && book.price <= 15 }");

表达式中传参数,注意格式:

String name = System.console().readLine();
 List<Map> books = with(Object).get("store.book.findAll { book -> book.author == " + name + " }");

Instead use the param(java.lang.String, java.lang.Object) method like this:

 String name = System.console().readLine();
 List<Map> books = with(Object).param("name", name).get("store.book.findAll { book -> book.author == name }");

JsonPath常用方法:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值