尝试从 REST 响应 (SOAPUI) 中提取以下值

Trying to extract the following value from the REST response(SOAPUI)

我有以下 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&lt;\/a>,</a>
      <a download="download" href="/" target="_blank">TestTwo.txt&lt;\/a>","# Index_1":"1","DownloadFile Webservices_3":"</a>
      <a download="download" href="/" target="_blank">Test.txt&lt;\/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

您要解析的值是来自您的 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