小编jus*_*y88的帖子

如何迭代从 JsonSlurper.parse(JSONFile) 返回的 Map 对象?

我在 Ready!Api 1.9.0 中使用 Groovy 脚本来解码 SOAP 响应中返回的 Base64 字符串,并将生成的 JSON 对象存储在 json 文件中。然后获取生成的文件并使用 JsonSlurper 解析它以获取 Map 对象。

需要迭代该对象,以便我可以找到一个键并断言其值。我无法弄清楚为什么找不到钥匙。如果我直接使用 map.get(key) 调用键,则会收到错误“没有此类属性”。如果我直接使用 map.get('key') 调用它,它会返回 null。我也尝试过Map.each{k -> log.info("${k}")}返回“interface.java.util.Map”而不是预期的键列表。

//create file path
def respFile = "C:\\Users\\me\\Documents\\Temp\\response.json"

    //set originaldata in response to var
    def response1 = context.expand( '${Method#Response#declare namespace ns4=\'com/service/path/v4\'; declare namespace ns1=\'com/other/service/path/v4\'; //ns1:RequestResponse[1]/ns1:GetAsset[1]/ns1:Asset[1]/ns4:DR[1]/ns4:Sources[1]/ns4:Source[1]/ns4:OriginalData[1]}' )

    //decode the data
    byte[] decoded = response1.decodeBase64()

    //create file using file path above if it doesnt exist
    def rf = new File(respFile)

    //write data to file NOTE …
Run Code Online (Sandbox Code Playgroud)

groovy parsing json soapui jsonslurper

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

groovy ×1

json ×1

jsonslurper ×1

parsing ×1

soapui ×1