2015-11-10 44 views
0

它看起來像重複,但請幫助我用正確的工具創建正確的查詢。我想在Jenkins機器上執行這個腳本,所以我不想搞亂其他庫。 我想都id的一個List,如(name是 'Test79' 和tags包含 'launch_QA-350') 我有這樣的JSON結構:使用groovy工具解析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) 
} 

回答

2

更巧妙的方式

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