从以下数组中捕获的最佳方法是什么?
我尝试使用类似行的json路径提取器: $ .. [?(@。beschikbaar ==' true')]。beginDate 但是我正面临着由于我有限的正则表达式/ json路径知识,我无法解决的语法错误
示例数组是;
{
"data":
[
[
{
"beginDate":"2017-05-01T08:00:00",
"eindDate":null,
"beschikbaar":false
},
{
"beginDate":"2017-05-01T08:15:00",
"eindDate":null,
"beschikbaar":false
},
{
"beginDate":"2017-05-01T08:30:00",
"eindDate":"2017-05-01T10:30:00+02:00",
"beschikbaar":true
},
{
"beginDate":"2017-05-01T08:45:00",
"eindDate":"2017-05-01T10:45:00+02:00",
"beschikbaar":true
},
{
"beginDate":"2017-05-01T09:00:00",
"eindDate":"2017-05-01T11:00:00+02:00",
"beschikbaar":true
},
{
"beginDate":"2017-05-01T09:15:00",
"eindDate":"2017-05-01T11:15:00+02:00",
"beschikbaar":true
},
{
"beginDate":"2017-05-01T09:30:00",
"eindDate":"2017-05-01T11:30:00+02:00",
"beschikbaar":true
},
{
"beginDate":"2017-05-01T09:45:00",
"eindDate":"2017-05-01T11:45:00+02:00",
"beschikbaar":true
},
{
"beginDate":"2017-05-01T10:00:00",
"eindDate":"2017-05-01T12:00:00+02:00",
"beschikbaar":true
},
答案 0 :(得分:2)
不要对JSON数据使用正则表达式,JMeter提供JSON Extractor旨在通过JSON Path Language处理JSON数据,因此您应该能够使用以下查询获取“beginDate”: p>
$..[?(@.beschikbaar == true)].beginDate
演示:
查看JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios文章,了解更详细的解释和更多示例。
答案 1 :(得分:1)
你可以试试这个
(?s)\{.*?\"beginDate\":\"([^{]*?)\"[^{]+\"beschikbaar\":true.*?\}
(?s)
是单行修饰符,可使.
与换行符匹配
您可以在http://www.regexplanet.com/advanced/java/index.html
进行测试将Template
设置为$1$
表示使用第一组