使用Jmeter中的“Json Path Extractor”从JSON响应中提取多个值

时间:2013-05-14 10:55:29

标签: json jmeter jsonpath

{
    "response_time": 0.014376163482666016,
    "applications": [
        {
            "api_key": "blted0e7982e1cf62a8",
            "name": "gta",
            "uid": "gta",
            "account_name": "jack"
        },
        {
            "api_key": "blt1423c40d23e4a423",
            "name": "cellapp",
            "uid": "cellapp",
            "account_name": "max"
        }
    ]
}

请帮我使用Jmeter account_name = max提取Json Path Extractor

3 个答案:

答案 0 :(得分:5)

$.applications.name[2]必须完全返回第二个名称元素。

如果您使用JSONPath之类$..name,则会查找名为name的所有元素,插件将返回单个字符串值,该值看起来像["gta","cellapp"]。如有必要,您可以解析此字符串。

检查此站点有关如何构建JSONPath表达式的信息: http://goessner.net/articles/JsonPath/index.html#e2

答案 1 :(得分:1)

随着表达 - >

$.[?(@.account_name=='max')].account_name

你会得到

[
  "max"
]

随着表达 - >

$.[?(@.account_name=='max')]

你会得到

[
    {
        "api_key": "blt1423c40d23e4a423",
        "name": "cellapp",
        "uid": "cellapp",
        "account_name": "max"
    }
]

随着表达 - >

$.[?(/max/.test(@.account_name))]

你会得到一个“喜欢”的条件

[
    {
        "api_key": "blt1423c40d23e4a423",
        "name": "cellapp",
        "uid": "cellapp",
        "account_name": "max"
    }
]

答案 2 :(得分:-1)

$..[?(@.account_name =='max')].account_name