访问(键)而不是值是原始 JSONPath 规范property
中不存在的功能,并且只有少数实现支持此功能。因此,使用 JMeter JsonPath Plugin/Extractor 仅提取属性名称并不走运。例如,用于 JavaScript 的JsonPath-Plus提供了用于抓取匹配项的属性名称的运算符。
~
作为替代方案,您可以使用 JSR223 Groovy 从 JSON 中获取结果:
import groovy.json.JsonSlurper;
import groovy.json.JsonOutput; //if output as JSON is needed
JsonSlurper JSON = new JsonSlurper ();
jsonResponse = JSON.parseText(prev.getResponseDataAsString());
//println json.keySet() //[-1, 222, 223, 224, recordsCount]
vars.put("firstName", response.members[2].firstName.toString());
Set<String> keySet=obj.keySet();
List<String> keys = [];
// iterate over the key set, adding only numbers to result list
for(String key:keySet){
if(key.isNumber())
keys.add(key);
}
//println(keys); //[-1, 222, 223, 224]
def output = JsonOutput.toJson(keys); //convert to JSON string if neede
//println(output); //["-1","222","223","224"]
vars.put("jsonKeys", output.toString());
演示:在线 Groovy 示例。
更多信息: