JSON (JavaScript Object Notation) 是一种常用的数据格式,用来存储和传输结构化的数据。在接口自动化中,我们经常需要对返回的 JSON 数据进行解析,以提取需要的信息。JSON Path 是一种用于查询和筛选 JSON 数据的表达式语言,类似于传统编程语言中的 XPath。
本文将从零开始介绍 JSON Path 的基本语法和用法,帮助读者快速上手 JSON 解析。
本文从6个方面来阐述这篇文章
一、JSON Path 基础语法
二、索引和筛选条件
三、基本操作
四、多层级路径
五、高级用法
六、示例
一、JSON Path 基础语法
JSON Path 的基本语法非常简单,使用 "." 来表示层级关系,用 "[]" 来表示索引和筛选条件。
例如,假设有以下 JSON 数据: { "name": "John", "age": 30, "address": { "city": "New York", "state": "NY" }, "hobbies": ["reading", "music", "coding"] }
要提取 name 字段的值,可以使用路径表达式 "$.name",其中 "$" 表示根节点,"." 表示层级关系。
二、索引和筛选条件
如果要提取 hobbies 数组中的第一个元素,可以使用路径表达式 "$.hobbies[0]"。其中 "[0]" 表示索引,表示提取数组中的第一个元素。
如果要提取年龄大于 25 的人的姓名,可以使用路径表达式 "$[?(@.age > 25)].name"。其中 "?(@.age > 25)" 表示筛选条件,表示提取满足年龄大于 25 的对象的姓名。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn999】
三、基本操作
除了提取字段的值,JSON Path 还支持一些基本操作。
例如,要统计 hobbies 数组中的元素个数,可以使用路径表达式 "$.hobbies.length()"。其中 ".length()" 表示获取数组的长度。
如果要将 name 字段的值转换为大写,可以使用路径表达式 "$.name.toUpperCase()"。其中 ".toUpperCase()" 表示将字符串转换为大写。
四、多层级路径
JSON 数据可能存在多层级的结构,JSON Path 可以通过连接多个 "." 来表示多层级路径。
例如,要提取 address 字段中的 city 值,可以使用路径表达式 "$.address.city"。
五、高级用法
除了基本语法,JSON Path 还支持一些高级用法,如通配符、递归查询等。
通配符 "" 可以用来匹配任意字段或数组元素。例如,路径表达式 "$.address." 可以用来提取 address 字段中的所有值。
递归查询 ".." 可以用来查询所有满足条件的字段或数组元素,无论其层级。例如,路径表达式 "$..name" 可以用来提取所有的 name 字段的值。
六、示例
下面是一个示例,演示如何使用 JSON Path 提取 JSON 数据中的信息。
假设有以下 JSON 数据: { "book": { "title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "genres": ["Fiction", "Classics", "Romance"], "price": 10.99 } }
要提取书名和价格,可以使用路径表达式 "$.book.title" 和 "$.book.price"。
要提取所有的分类,可以使用路径表达式 "$.book.genres"。
要提取第一个分类,可以使用路径表达式 "$.book.genres[0]"。
总结
本文从零开始介绍了 JSON Path 的基本语法和用法。通过学习 JSON Path,我们可以快速准确地提取 JSON 数据中的信息,用于接口自动化测试中的断言和验证。希望本文对读者能有所帮助,如果有任何问题或建议,请随时留言。
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。