今天需要调两个接口,第一个接口的返回值,作为第二个接口的入参。那么思路就是把返回报文用正则提取器提取出来,这点网上应该都有很多资料会说怎么使用正则提取器。
问题就出在这次遇到的接口返回报文有点复杂,我要取的一个字段是id,结果报文里面有N个id,比如:
{ id:xxxxx,name:"xxxx",data{id:123123,test:xxxxx,data{id:123123,test:xxxxx}}}
因为json同级目录下不能重复,而且这个返回报文就跟老太太的裹脚布一样又臭又长
那用网上介绍的办法肯定就会把这些id全部拿出来,我只要取最外面的id,简单对比一下就用{"id":"(.*?)","name":" 简单应付一下。结果又给我搞一堆数据出来
没办法就还是乖乖用调式取样器,结果发现里面还有
1.data里面套了id:X,"name":"
2.id:XX,test:123,"name":"
这种网上查了很多资料,好像都没有介绍这种怎么处理,最多解释一下(.*?)里面的是干嘛的
所以只能自己想办法了,找到各id的差异
对比长度不一样,所以第一个问题就很好解决了。第二个问题就只要用正则取英文数字就能解决,所以最终改成{"id":"([A-Za-z0-9_\-\u4e00-\u9fa5]{32})","name":" 解决问题
经过这么一波操作以后,遇到再困难的也不怕。
size:xx,name:xx size:xx,test:xx
思路就是把正则替换成"size":([1-9]\d*),"