我需要正则表达式,可以从Jmeter正则表达式提取器中的序列中提取JSON结构
[message1]
{
"headers": {
"messageId": "a0923b4c-33f6-4b0c-be53-be17332d51fa"
},
"payload": {
"maxIdlePeriod": 1800
},
"status": {
"code": "ok",
"errorMessages": []
}
}
[message2]
{
"headers": {
"messageId": "46fb53f0-c3de-4270-bad5-6f504af197f9"
},
"payload": {
"termsUrl": "https://termsUrl.com",
"termsVersion": "8201"
}
}
我已经尝试过在其他堆栈线程{(?:[^ {}] |(?R))}中找到的这个regexp,但JAVA中似乎不支持递归 - 表达式无效:{(? :[^ {}] |(?R))}序列(?R ...)无法识别
提前致谢
答案 0 :(得分:0)
所以你似乎有一个不同JSON"文件"的序列。在单个响应中,对吧?
好吧,如果你正在寻找最简单的方法 - 为什么不用单根来拥抱它们,那么你就拥有一个带有元素列表的JSON,这样你就能够使用JSON提取器后处理器?
如果你坚持使用正则表达式提取器 - 我可能会建议先尝试切换多行模式(使用(?:m)
),然后使用类似(^\{\n$.+^\}\n$)
的内容 - 免责声明:没有经过测试!,特别是对于多线模式中的开始/结束线锚点的位置 - 但是我希望你有了这个想法(同样有必要再次检查你是否有\n
或\r\n
,也许,与中央.+
一起玩,使其更具体。)
或选择JSR223 / Beanshell后处理器并以自定义方式解析响应。