如何使用Java在JSON中转义双引号

如何使用Java在JSON中转义双引号,java,json,Java,Json,处理JSON字符串中存在的双引号的最佳方法是什么?我从外部源获取字符串。 转义双引号将转义所有双引号,即使是环绕键和值的双引号。理想情况下,我只希望找到一种方法来转义值中的引号。在下面的示例中,字符串“quotes”打断了JSON。 处理这个问题的最佳方法是什么? 感谢您的意见。谢谢 @Test public void isValidJSON() { String testJSONString = "{\"messageType\":\"typeA\", \"subject\":\"He

处理JSON字符串中存在的双引号的最佳方法是什么?我从外部源获取字符串。 转义双引号将转义所有双引号,即使是环绕键和值的双引号。理想情况下,我只希望找到一种方法来转义值中的引号。在下面的示例中,字符串“quotes”打断了JSON。 处理这个问题的最佳方法是什么? 感谢您的意见。谢谢

@Test
public void isValidJSON()
{
    String testJSONString = "{\"messageType\":\"typeA\", \"subject\":\"Here is a subject with \"quotes\" in it\" }";        
    try
    {
        new JSONObject(testJSONString);
    } catch (JSONException e)
    {
        e.printStackTrace();
    }

}
我得到的错误是:

org.json.JSONException: Expected a ',' or '}' at 60 [character 61 line 1]

双转义应该可以工作
\\\”
,尽管您很少应该手工编写这样的JSON字符串。例如,JSON对象
{“Name”:“Hello\“World\\”}
变成
“{\”Name\:\“Hello\\\”World\\\“}“
正如您所预料的,您会得到一个错误。你发布的代码并没有真正帮助我们;原始字符串是什么样子的?如果您还没有用JSON包装它,请转义原始字符串,然后将其放入JSON包装器中。此处的错误与引号无关,您将右大括号保留在末尾。缺少的大括号是我的打字错误。我没有构建上面的JSON字符串。我是从外部渠道得到的。我必须根据从外部源获取的字符串构建JSON对象。当其中一个字符串值包含引号时,将中断JSON对象实例化。我可能不是第一个遇到这种情况的人,所以我想知道是否有办法解决这个问题。