Apifox 中使用 JSONPath 提取接口响应的基本用法

Apifox 中使用 JSONPath 提取接口响应的基本用法

在项目的开发和测试过程中,经常需要从接口的响应数据里提取特定的值,以便进一步处理和使用(通常用于发起其它请求)。幸运的是, Apifox 作为一款功能强大的 API 管理平台,提供了使用 JSONPath 语法来轻松提取 API 响应数据中的值。本文将介绍如何在 Apifox 中利用 JSONPath 进行数据提取,帮助你更高效地处理 API 响应数据。

什么是 JSONPath?

JSONPath 是一种用于在 JSON 结构中定位和提取数据的表达式语言。类似于 XPath 用于 XML,JSONPath 允许你通过指定路径表达式来定位和获取 JSON 数据中的特定字段。

基本提取思路

  1. 在项目接口的后置操作中选择提取变量

2. 然后填写相关的变量名称、变量类型、JSONPath 表达式等

3. 点击发送按钮,Apifox 将根据你提供的 JSONPath 表达式从响应数据中提取相应的字段值

案例参考

假设你发送了 API 请求,并得到了以下响应数据:

{
    "code": 0,
    "data": {
        "id": 1000,
        "title": "首席品牌官",
        "list": [
            {
                "id": 100000,
                "name": "张三",
                "age": 18,
                "phone": 8473820,
                "hobby": ["唱","跳","rap","篮球"]
            },
            {
                "id": 100001,
                "name": "李四",
                "age": 34,
                "phone": 8373855,
                "hobby": ["羽毛球","乒乓球","足球","篮球"]
            },
            {
                "id": 100002,
                "name": "王五",
                "age": 35,
                "phone": 8873868,
                "hobby": ["书法","国画","二次元"]
            }
        ],
        "content_counter": {
            "view": 28182,
            "like": 316,
            "collect": 904
        }
    }
}

若你想提取“list”里面“id”字段的所有值,你可以使用 JSONPath 表达式$.data.list[*].idApifox 将会从响应数据中提取出“id”字段的值,即:[100000,100001,100002]

注:你可在 http://jsonpath.com/ 这个地址测试

其它常见响应值的提取:

JsonPath
说明
$.data.id
提取字段 "id" 的值
$.data.list
提取数组 "list" 的值
$.data.list[*].id
提取数组 "list" 中所有对象的 "id" 值
$.data.list[1].id
提取数组 "list" 中第二个对象的 "id" 值
$.data.list[-1:].id
提取数组 "list" 中倒数第一个对象的 "id" 值
$.data.list[?(@.age > 20)]
提取数组 "list" 中 "age" 大于 20 的对象值
$.data.list[?(@.age > 20)].id
提取数组 "list" 中 "age" 大于 20 的对象值的 "id" 值
$.data.list[?(@.name == '李四')]
提取数组 "list" 中 "name" 为 "李四" 的对象值
$.data.list[?(@.name == '李四')].id
提取数组 "list" 中 "name" 为 "李四" 的对象值的 "id" 值
$.data.list[*].hobby
提取数组 "list" 中所有对象的 "hobby" 值
$.data.list[?(@.hobby.indexOf('书法') !== -1)]
提取数组 "list" 中 "hobby" 含有 "书法" 的对象值
$.data.content_counter
提取字段 "content_counter" 的值
$.data.content_counter.view
提取字段 "view" 的值

总结

ApifoxJSONPath 功能提供了一种简单而强大的方法来从 API 响应数据中提取所需的字段值。通过了解JSONPath 语法并在 Apifox 的 后置操作 中应用合适的表达式,我们可以轻松而高效地处理 API 响应数据。无论是提取单个字段还是复杂的嵌套结构,Apifox 的 JSONPath 提取功能都能满足你的需求,提升你在 API 开发和测试中的工作效率。尝试一下 Apifox 的 JSONPath 提取功能,让你的数据提取过程更加便捷和准确吧!

订阅
qrcode

订阅

随时随地获取 Apifox 最新动态