使用groovy内置工具解析json

时间:2015-11-10 11:15:24

标签: json groovy

看起来像重复,但请帮我用正确的工具创建正确的查询。我想在Jenkins机器上执行这个脚本,所以我不想搞乱其他库。 我希望列出所有id,例如name是' Test79'而tags包含' launch_QA-350') 我有这样的json结构:

    //...     
    {
    "content": [
        {
            "id": "5641cde5bfcd0b0485326b83",
            "name": "Test79",
            "tags": [
                "launch_QA-350",
                "2628991879",
                " 2628991879"],
            "isPr": false
        }
    ]
}

(更新)我已经找到了类似Java的解决方案:

import groovy.json.JsonSlurper

def slurper = new JsonSlurper();
def result = slurper.parseText(jsObj);
for(def cont : result.content){
    if(cont.name == "Test79" && cont.tags.contains("launch_QA-350"))
        println(cont.id)
}

1 个答案:

答案 0 :(得分:2)

groovier 方式:

def json = new JsonSlurper().parseText(jsObj)
assert ['5641cde5bfcd0b0485326b83'] == 
    json.content.findAll({ it.name == 'Test79'  && it.tags.contains('launch_QA-350') }).id

assert ['5641cde5bfcd0b0485326b83'] == 
    json.content.findAll({ it.name == 'Test79'  && 'launch_QA-350' in it.tags }).id