我有以下SOAPUI休息输出:
<html>
<head>
<meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org" name="generator"/>
<title/>
</head>
<body>
{"message":{},"records":[{"Application Name_2":"DO NOT DELETE: QA Regression Test","Status ID_5":"13160","Email_6":"","ListFiles Webservices_4":"
<a download="download" href="/" target="_blank">Test.txt<\/a>,</a>
<a download="download" href="/" target="_blank">TestTwo.txt<\/a>","# Index_1":"1","DownloadFile Webservices_3":"</a>
<a download="download" href="/" target="_blank">Test.txt<\/a>"}],"header":[{"index":"1","name":"# Index","numformat":"","type":"string"},{"index":"2","name":"Application Name","numformat":"","type":"string"},{"index":"3","name":"DownloadFile Webservices","numformat":"","type":"string"},{"index":"4","name":"ListFiles Webservices","numformat":"","type":"string"},{"index":"5","name":"Status ID","numformat":"","type":"string"},{"index":"6","name":"Email","numformat":"","type":"string"}]}</a>
</body>
</html>
我正在尝试提取Test.txt但无法提取。
这就是我的尝试:
//imports
import groovy.json.JsonSlurper
//grab the response
def ResponseMessage = messageExchange.response.responseContent
//define a JsonSlurper
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage)
def FieldDownloadFile = jsonSlurper.records.'DownloadFile Webservices_3'
log.info FieldDownloadFile
这就是我能够提取的内容:
[<a target=_blank href="/files/spool/493500/1133476/1_2866521_1133476_Test.txt?fs=1" download>Test.txt</a>]
但我只想提取 - Test.txt
答案 0 :(得分:1)
您要解析的值是来自某个 Json 元素的任意字符串值,因此没有标准方法直接使用slurper。
在您的情况下,例如,因为您的字符串值是 Xml ,您可以使用XmlSlurper
再次解析它以获得所需的值。以下是您案例的简化示例:
import groovy.json.JsonSlurper
def message = '''
{"message":{},"records":[
{"DownloadFile Webservices_3":"<a download='download' href='/' target='_blank'>Text.txt</a>"}]}
'''
def jsonSlurper = new JsonSlurper().parseText(message)
def fieldDownloadFile = jsonSlurper.records.'DownloadFile Webservices_3'
// since <a> is the root of your xml you can access the value without
// any path, if your xml was more complex you need a path like JsonSlurper
def anchorValue = new XmlSlurper().parseText(fieldDownloadFile)
log.info anchorValue // prints Text.txt