使用带反斜杠的字符串进行实例化时,JSON对象创建失败

时间:2013-07-17 23:22:56

标签: java json

我有代码,我从字符串中实例化JSONObject。在实例化时,我得到一个JSONException非法转义。有关如何解决此问题的任何指示?

以下是代码块:

@Test
public void testJSONString()
{
    try
    {   
        String str = "{\"path\":\"folderA\\myfileA\"}";
        JSONObject jsonObj = new JSONObject(str);

    } catch (JSONException e)
    {
        e.printStackTrace();
        fail();
    }

}

我得到的例外是:

org.json.JSONException: Illegal escape. at 18 [character 19 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONTokener.nextString(JSONTokener.java:289)
at org.json.JSONTokener.nextValue(JSONTokener.java:360)
at org.json.JSONObject.<init>(JSONObject.java:225)
at org.json.JSONObject.<init>(JSONObject.java:327)

似乎是\\m的问题。什么是逃脱这个的正确方法?

谢谢!

1 个答案:

答案 0 :(得分:3)

json应该像\\那样转义反斜杠,因此在Java中,两个反斜杠都需要转义\\\\

String str = "{\"path\":\"folderA\\\\myfileA\"}";