ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JsonPath的应用

2021-03-06 20:00:54  阅读:248  来源: 互联网

标签:category price Object Json JsonPath 应用 book store


前面文章有介绍过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常用方法:

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

标签:category,price,Object,Json,JsonPath,应用,book,store
来源: https://blog.csdn.net/wumingxiaoyao/article/details/114445539

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有