我有代码,我从字符串中实例化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
的问题。什么是逃脱这个的正确方法?
谢谢!
答案 0 :(得分:3)
json应该像\\
那样转义反斜杠,因此在Java中,两个反斜杠都需要转义\\\\
。
String str = "{\"path\":\"folderA\\\\myfileA\"}";