在Jmeter中,我试图从json中提取值。 这是我收到的json回复:
{
Definition: {
key: 1124,
Id: 1743,
srcID: "3427",
pcKey: -1,
userName: "abraizada",
cName: "JMeter2016-11-27-1480283993838",
Type: "SUBJECT",
cohortTool: "Web app",
cCount: 74,
extractionStatus: "Completed",
dateCreated: "2017-05-09T18:35:35Z"
},
datasource: {
id: 2,
name: "Claims-OMOP",
subjectCount: 116352
},
project: {
id: 747,
name: "Jmeter Project"
}
},
{
cohortDefinition: {
key: 1123,
Id: 1742,
srcID: "3447",
pcKey: -1,
userName: "IE_USER",
cName: "JMeter2016-11-15-1479204865900",
Type: "SUBJECT",
cohortTool: "Web app",
cCount: 74,
extractionStatus: "",
dateCreated: "2017-05-09T18:35:35Z"
},
datasource: {
id: 2,
name: "External",
sCount: 116352
},
project: {
id: 747,
name: "Jmeter Project"
}
},
从上面回复,我想提取价值'关键'如果srcID = 3447。 我试过这样做 $ .. cohortKey [?(@。srcCohortId = 3447)]。cohortKey
但没有得到结果。任何人都可以帮我提取" key"基于条件的价值。
答案 0 :(得分:4)
您可以使用JSON Extractor对JSON Path表达式执行此操作,如下所示:
$..[?(@.srcID==3447)].key
其中:
..
- 是递归下降,它有助于在json数据中找到所有地方[]
- 一个数组,表示过滤器将应用并在数组中查找?( )
- 应用过滤器/条件(脚本)表达式。@
- 当前对象@.srcID==3447
- 包含值为srcID
3447
的当前对象
.key
- 获取满足上述条件的对象的密钥我做了一个例子,并像上面那样配置JSON Extractor
结果
有关JSON Extractor的更多用法,请参阅:
答案 1 :(得分:1)
这是将提取值的表达式。
`$..[?(@.srcID=3447)].key`
参考:
https://www.blazemeter.com/blog/advanced-usage-json-path-extractor-jmeter