Skip to content

JsonPath 提取器使用 com.jayway.jsonpath:json-path 库,通过 JsonPath 表达式提取 JSON 字符串中的指定值。

JsonPathExtractor extends StandardExtractor<Object> 是标准提取器的子类,支持位置参数写法。

属性说明:

属性名称属性值类型属性含义示例
refNameString变量名称(Groot 变量)"id"
refRef变量对象
编程语言变量,仅限代码风格用例
Ref<String> ref
expressionStringJsonPath 表达式'$.id'
defaultObject提取失败时的默认值"oid123456"
scopeenum提取变量作用域"session"
targetString目标 JSON 字符串'{"id": "abc"}'
yaml
# 标准写法
- jsonpath:
    refName: "id"
    expression: '$.id'
    target: '{"id": "abc"}'

# 位置参数写法
- jsonpath: ["id", '$.id']  # 默认从响应 Body 中提取
- jsonpath: ["id", '$.id', {target: '{"id": "abc"}', scope: "session"} ]
# 标准写法
- jsonpath:
    refName: "id"
    expression: '$.id'
    target: '{"id": "abc"}'

# 位置参数写法
- jsonpath: ["id", '$.id']  # 默认从响应 Body 中提取
- jsonpath: ["id", '$.id', {target: '{"id": "abc"}', scope: "session"} ]
java
// 默认从响应 Body 中提取
jsonpath("id", "$.id")
jsonpath("id", "$.id", params -> params.target("{\"id\": \"abc\"}"))

// 将提取结果保存到编程语言的变量 id 中
Ref<String> id = ref();
jsonpath(id, "$.id", params -> params.target("{\"id\": \"abc\"}"))
// 默认从响应 Body 中提取
jsonpath("id", "$.id")
jsonpath("id", "$.id", params -> params.target("{\"id\": \"abc\"}"))

// 将提取结果保存到编程语言的变量 id 中
Ref<String> id = ref();
jsonpath(id, "$.id", params -> params.target("{\"id\": \"abc\"}"))
groovy
// 默认从响应 Body 中提取
jsonpath "id", "$.id"
jsonpath "id", "$.id", { target '{"id": "abc"}' }

// 将提取结果保存到编程语言的变量 id 中
Ref<String> id = ref("")
jsonpath id, '$.id', { target '{"id": "abc"}' }
// 默认从响应 Body 中提取
jsonpath "id", "$.id"
jsonpath "id", "$.id", { target '{"id": "abc"}' }

// 将提取结果保存到编程语言的变量 id 中
Ref<String> id = ref("")
jsonpath id, '$.id', { target '{"id": "abc"}' }