1.说明

有时候需要将前一个请求返回的数据作为下一个请求的参数时,我们就需要 JSON提取器 / 正则表达式提取器。使用JSON提取器去提取我们想要的部分再传入后面的请求中。

 

2.步骤

第一步:添加JSON提取器

HTTP请求 鼠标右键 =>添加 后置处理器 =>JSON提取器

在线javascript 提取json json提取器怎么用_取值

在察看结果树中选择JSON Path Tester,输入表达式即可拿来测试书写的Json提取器表达式是否正确,是否获取到了我们想要的数据

在线javascript 提取json json提取器怎么用_JSON_02

 

第二步:提取请求返回的我们需要的内容

返回数据(需要提取加粗的数据出来),可以使用 json.cn 方便查看格式

{"data":{"customer":{"cart":{"cartItems":[{"quantity":5,"lineId":"1502177237219287043","sku":{"product":{"extAttribute":[{"code":"logistics_description"}],"images":[{"images":null,"url":"x"}],"code":"AA9C08571T441_507","skus":[
                                    {"code":"6199f9b283496a0001b8115b","options":[]}],"subTitle":null},"isEnabled":true},"selected":true},{"quantity":3,"lineId":"1481162053185445894","sku":{"product":{"extAttribute":[{"code":"logistics_description"}],"images":[{"images":[],"url":"x"}],"code":"AA1S00431CA155_999","skus":[{"code":"61b71e5008dd700001d1b90f","options":[]}],"subTitle":null},"isEnabled":true},"selected":true}]}}}
}

在线javascript 提取json json提取器怎么用_数据_03

在线javascript 提取json json提取器怎么用_数据_04

 标准写法为$.key

 其中key为返回结果map中的一个键,如果是多层则继续用.key进行即可

 如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号

 

第三步:取值

取值使用 ${JSON提取器中的参数名称}

即${cart_skuCode_0}

 

 第四步:更多取值用法

在线javascript 提取json json提取器怎么用_在线javascript 提取json_05

 

在线javascript 提取json json提取器怎么用_数据_06

 

获取取得的值中的第一个:${cart_quantity_1}     值:5

获取取得的值中的第二个:${cart_quantity_2}     值:3

勾选compute concatenation var的情况下,可以使用${cart_skuCode_ALL}获得全部的值    值:5,3

 

JsonPath

说明

$

根对象/元素

@

当前对象/元素

. or []

子操作符

..

递归下降

*

通配符,代表所有对象/元素

[]

下标运算,通过数组元素的下标访问数组元素

[,]

Union操作符,使用间隔的名字或数组下边生成子集

[start:end:step]

数组切片

?()

使用过滤表达式

()

脚本表达式

 

 

举例说明:

{ "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
  }
  }
  }

$.store.book[*].author

商店里所有书籍的作者

$..author

商店里所有书籍的作者

$.store.*

商店里的所有东西(包括一些书和一辆红色的自行车)

$.store..price

商店里的所有价格(包括每一本书的价格和自行车的价格)

$..book[2]

第三本书的所有信息

$..book[-1:]

最后一本书的所有信息

$..book[0,1]

前2本书的所有信息

$..book[:2]

前2本书的所有信息

$..book[?(@.isbn)]

找出所有有isbn编号的书籍信息

$..book[?(@.price<10)]

找出所有价格小于10的书籍信息