Jmeter Json 提取器:JSONPath 表达式适用于评估器但不适用于 jmeter 内部?
Jmeter Json Extractor: JSONPath Expression works on evaluators but not inside jmeter?
我在 json 从 json 中提取元素的路径时遇到问题。
这里是 json 的例子:
[
{
"idA":"104",
"idB":"2941",
"idC":"13316",
"idE":"13361",
"idF":"12758",
"idG":"12865",
"idH":[
]
},
{
"idA":"104",
"idB":"2941",
"idC":"13317",
"idE":"13362",
"idF":"12759",
"idG":"12866",
"idH":[
"10391"
]
},
{
"idA":"104",
"idB":"2941",
"idC":"13318",
"idE":"13363",
"idF":"12760",
"idG":"12867",
"idH":[
]
}
]
这是json路径:
$[?(@.idH[0]!=null)]
目标是获取idH不为null的元素。
它适用于少数 json 在线评估者,我从他们那里得到了我期望的结果:
[
{
"idA": "104",
"idB": "2941",
"idC": "13317",
"idE": "13362",
"idF": "12759",
"idG": "12866",
"idH": [
"10391"
]
}
]
但它在其他一些在线评估器上也失败了,例如返回“JSONPath 发生错误”。
不幸的是,它不适用于 Jmeter 中的 Json 提取器,因为我得到了 json 的第一个元素,就像 json 路径本来是 $[ 0]
知道这里有什么问题吗?
在此先感谢您提供任何帮助、线索或想法。
为了以防万一,我使用 Apache JMeter (5.3)
如何使用 JSON Extractor which allows executing arbitrary JsonPath 查询
您应该能够像这样简单地获得您正在寻找的对象:
$..[?(@.idH[0])]
演示:
我在 json 从 json 中提取元素的路径时遇到问题。
这里是 json 的例子:
[
{
"idA":"104",
"idB":"2941",
"idC":"13316",
"idE":"13361",
"idF":"12758",
"idG":"12865",
"idH":[
]
},
{
"idA":"104",
"idB":"2941",
"idC":"13317",
"idE":"13362",
"idF":"12759",
"idG":"12866",
"idH":[
"10391"
]
},
{
"idA":"104",
"idB":"2941",
"idC":"13318",
"idE":"13363",
"idF":"12760",
"idG":"12867",
"idH":[
]
}
]
这是json路径:
$[?(@.idH[0]!=null)]
目标是获取idH不为null的元素。 它适用于少数 json 在线评估者,我从他们那里得到了我期望的结果:
[
{
"idA": "104",
"idB": "2941",
"idC": "13317",
"idE": "13362",
"idF": "12759",
"idG": "12866",
"idH": [
"10391"
]
}
]
但它在其他一些在线评估器上也失败了,例如返回“JSONPath 发生错误”。
不幸的是,它不适用于 Jmeter 中的 Json 提取器,因为我得到了 json 的第一个元素,就像 json 路径本来是 $[ 0]
知道这里有什么问题吗? 在此先感谢您提供任何帮助、线索或想法。
为了以防万一,我使用 Apache JMeter (5.3)
如何使用 JSON Extractor which allows executing arbitrary JsonPath 查询
您应该能够像这样简单地获得您正在寻找的对象:
$..[?(@.idH[0])]
演示: