Java 如何在json中转义双引号

Java 如何在json中转义双引号,java,json,Java,Json,我从外部json源获取数据,如下所示 {"root":{"name":"Haf"eez","skills":["java","j2ee","jquery","ext-js"]}} 如何在java中解析它。Hafeez一词中间有双引号 在摆脱了上面的困境之后,我会做什么 jsonObject = new JSONObject(new JSONTokener( new InputStreamReader(input))); 用反斜杠转义。将“替换为\\” 使用正则表达

我从外部json源获取数据,如下所示

{"root":{"name":"Haf"eez","skills":["java","j2ee","jquery","ext-js"]}}
如何在java中解析它。Hafeez一词中间有双引号

在摆脱了上面的困境之后,我会做什么

  jsonObject = new JSONObject(new JSONTokener(
            new InputStreamReader(input)));

用反斜杠转义。将“替换为\\”


使用正则表达式:
str.replaceAll(“[a-zA-Z0-9])(\”)([a-zA-Z0-9])”,“$1”

基本上,在解析之前需要转义双引号。这是无效的JSON。修复从其他服务接收到的损坏json的外部源?您的json无效。联系外部源并告诉他们发送实际的JSON。如果您想尝试在这些模式旁边转义引号,
{“
[“
”]
”:
,“
”,
,则可以尝试使用
您的数据。replaceAll(“(?我相信我必须应用一些正则表达式来转义这个问题是的,您可以检查“前面和后面是否有非语法字符-不确定这是否在所有情况下都适用。如果JSon看起来像
{“name”:“value”,带有“lots”of“[“quotes”]”(“和“一些特殊标记”)”)
?正则表达式可能不是这里的最佳选择。我同意,但如果这是外部提供的,并且他不能让他们使用正确的语法,那么现在是艰难的时候了:P@user1794566当然,如果需要其他问题,请使用regex。