处理地图列表以获取地图中的键值

时间:2017-04-14 13:04:40

标签: json list groovy hashmap jmeter

我有一个map列表(从休息请求的json输出解析),如

[[Mobile:9876543210, Name:ABCD], [Mobile:8765432109, Name:EFGH], [Mobile:7654321098, Name:IJKL], [Mobile:6543210987, Name:MNOP]] 

原始JSON就像

{
    "data": [{
            "Name": "ABCD",
            "Mobile": "9876543210"
        },
        {
            "Name": "EFGH",
            "Mobile": "8765432109"
        },
        {
            "Name": "IJKL",
            "Mobile": "7654321098"
        },
        {
            "Name": "MNOP",
            "Mobile": "6543210987"
        }
    ]
}

我想从名称中获取移动值

尝试了一些事情但是没有成功。

使用Groovy在JMETER JSR223后处理器中尝试这个。

2 个答案:

答案 0 :(得分:1)

您应该能够根据Mobile获得Name

以下代码从OP的数据中获取名称为8765432109时的移动EFGH。同样,您可以更改名称的值,以获得正确的 Mibile

//Pass jsonString value to below parseText method
def json = new groovy.json.JsonSlurper().parseText(jsonString)
def result = json.data.find { it.Name == 'EFGH' }.Mobile
println result

您可以快速在线试用 Demo

答案 1 :(得分:0)

以下是从原始JSON响应中获取Name:Mobile对的Groovy代码示例(使用JSR223 PostProcessor中的代码)

def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())

json.data.each {entry ->
    entry.each {k, v -> log.info("${k}:${v}")}
}

演示:

Groovy JSON Example

参考文献: