使用转义序列解析JSON字符串

使用转义序列解析JSON字符串,json,string,parsing,groovy,escaping,Json,String,Parsing,Groovy,Escaping,我有一个字符串,它是一个JSON,里面有另一个JSON,它是一个带有转义序列的字符串 import groovy.json.*; import groovy.json.JsonSlurper; def JsonSlurper slurper = new JsonSlurper(); def message = '{"hello": "{\"my_name\":\"Robert\"}"}'; def jsonMess

我有一个字符串,它是一个JSON,里面有另一个JSON,它是一个带有转义序列的字符串

import groovy.json.*;
import groovy.json.JsonSlurper;

def JsonSlurper slurper = new JsonSlurper();
def message = '{"hello": "{\"my_name\":\"Robert\"}"}';
def jsonMessage =  slurper.parseText(message);
println jsonMessage;
如何将整个字符串解析为JSON对象

下面是一个虚拟示例-:

'{"hello": "{\"my_name\":\"Robert\"}"}'
所需最终输出-:

{"hello":{"my_name": "Robert"}}
我正试图用groovy使用以下代码来解析它。但是得到编译错误,因为字符串中有另一个带有转义序列的JSON

import groovy.json.*;
import groovy.json.JsonSlurper;

def JsonSlurper slurper = new JsonSlurper();
def message = '{"hello": "{\"my_name\":\"Robert\"}"}';
def jsonMessage =  slurper.parseText(message);
println jsonMessage;
编辑-: 虚拟示例格式不能静态更改,以双重转义反斜杠。这需要使用代码来完成


任何帮助都将不胜感激。谢谢

您可能需要避开反斜杠而不是引号,即:
defmessage='{“hello”:“{\\“我的名字\\”:\\“Robert\\”}”Yupe同意。但这也需要使用代码来完成。无法手动更改字符串以添加另一个\。这只是一个虚拟示例,但实际上,有效负载消息是以这种格式出现的。关于如何使用代码实现这一点,您有什么建议吗?JSON的源代码是什么?您的JSON已经被正确引用,可以正常工作。groovy中没有正确引用的是示例中的字符串。在groovy中正确引用字符串不会改变原始字符串,但会使其与源代码提供的内容完全相同。@cfrick JSON的源代码是一条Kafka消息,groovy脚本将其作为字符串读取。因此,在上面的示例中,我引用了传入消息作为字符串<代码>def JsonSlurper slurper=新JsonSlurper();def jsonMessage=slurper.parseText(有效负载);println-jsonMessage这是当字符串<代码>有效负载
传递给slurper方法时实际代码的样子和中断(编译错误)。然后请添加您得到的编译错误和您正在使用的实际代码。您当前试图简化问题的问题会产生另一个问题。