将 groovy 字符串转换为 groovy 中的地图

use*_*851 -1 regex grails groovy json dictionary

我需要将 groovy 字符串转换为地图对象。字符串正是:

"\"{\\\"1\\\":[],\\\"2\\\":[],\\\"3\\\":[{\\\"name\\\":\\\"PVR_Test_Product\\\",\\\"id\\\":\\\"100048\\\"}],\\\"4\\\":[],\\\"5\\\":[]}\""
Run Code Online (Sandbox Code Playgroud)

我需要获取与“name”对应的值。我已经尝试使用 JsonBuilder、JsonSlurper 和 regexp 方法来解决这个问题。但我还没有找到解决办法。

为了简化事情,我用 : 删除了反斜杠replaceAll。减少的字符串是:

""{"1":[],"2":[],"3":[{"name":"PVR_Test_Product","id":"100048"}],"4":[],"5":[]}""
Run Code Online (Sandbox Code Playgroud)

期待对此的任何帮助。我正在使用 grails 2.5.1 和 groovy 2.4.10。

Rao*_*Rao 5

您有一个可以使用 .json 解析的 json 字符串JsonSlurper

干得好:

def string = """{"1":[],"2":[],"3":[{"name":"PVR_Test_Product","id":"100048"}],"4":[],"5":[]}"""
def json = new groovy.json.JsonSlurper().parseText(string)
assert json instanceof Map?????
Run Code Online (Sandbox Code Playgroud)

您可以快速在线尝试此操作 Demo