groovy从字符串中提取值

groovy从字符串中提取值,groovy,Groovy,我从服务器响应中获取了一个字符串: responseString:"{"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1"}" 那么我会: responseString[1..-2].tokenize(',') 得到: 得到(3)得到: 我需要的是用户_1,我是否真的可以得到它?我一直被困在这里,其他json方法也会得到类似的结果,如何删除外部的“” 谢谢。如果您从responses

我从服务器响应中获取了一个字符串:

responseString:"{"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1"}"
那么我会:

responseString[1..-2].tokenize(',')
得到:

得到(3)得到:

我需要的是用户_1,我是否真的可以得到它?我一直被困在这里,其他json方法也会得到类似的结果,如何删除外部的“”


谢谢。

如果您从
responsest
中提取正确的JSON,那么您可以使用
JsonSlurper
,如下所示:

def s = 'responseString:"{"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1"}"'

def matcher = (s =~ /responseString:"(.*)"/)
assert matcher.matches()
def responseStr = matcher[0][1]

import groovy.json.JsonSlurper
def jsonSlurper = new JsonSlurper()
def json = jsonSlurper.parseText(responseStr)
assert "user_1" ==  json.userid

如果从
responseStr
中提取正确的JSON,则可以使用
JsonSlurper
,如下所示:

def s = 'responseString:"{"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1"}"'

def matcher = (s =~ /responseString:"(.*)"/)
assert matcher.matches()
def responseStr = matcher[0][1]

import groovy.json.JsonSlurper
def jsonSlurper = new JsonSlurper()
def json = jsonSlurper.parseText(responseStr)
assert "user_1" ==  json.userid

这段代码可以帮助您找到用户ID

def str= 'responseString:"{:"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1","hdkshfsd":"sdfsdfsdf"}'
def match = (str=~ /"userid":"(.*?)"/)
log.info match[0][1]
此模式可以帮助您从字符串中获取所需的任何值。尝试将userid替换为age,您将得到

def match = (str=~ /"age":"(.*?)"/)

@迈克尔密码也是正确的。只是您已经澄清,您希望用户名是特定的

此代码可以帮助您获得用户ID

def str= 'responseString:"{:"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1","hdkshfsd":"sdfsdfsdf"}'
def match = (str=~ /"userid":"(.*?)"/)
log.info match[0][1]
此模式可以帮助您从字符串中获取所需的任何值。尝试将userid替换为age,您将得到

def match = (str=~ /"age":"(.*?)"/)

@迈克尔密码也是正确的。只是您已经澄清,您希望用户名是特定的

响应实际上只是:“{”session:“vvSbMInXHRJuZQ==”,“age”:7200,“prid:“901Vjmx9qenYKw”,“userid:“user_1”}”。谢谢。实际的回答是:“{”session:“vvSbMInXHRJuZQ==”,“age”:7200,“prid:“901Vjmx9qenYKw”,“userid:“user_1”}”。谢谢。如果用户名包含
本身,这将不起作用。(例如,…“user\”name…)在引号内引用的几率很小,是的,但如果存在,我们可能必须修改模式。如果用户名包含
本身,这将不起作用。(例如,…“user\”name…)在引号内引用的几率很小,是的,但如果有,我们可能不得不修改模式