如何在java中显示json对象值中的反斜杠-非法转义JSONException
如何在java中以json值显示反斜杠。我得到一个org.json.JSONException:非法越狱。在9处使用下面的示例代码。 我使用的是json 1.0.0jar-org.json如何在java中显示json对象值中的反斜杠-非法转义JSONException,java,json,Java,Json,如何在java中以json值显示反斜杠。我得到一个org.json.JSONException:非法越狱。在9处使用下面的示例代码。 我使用的是json 1.0.0jar-org.json String s1 = "{'Hi':'\\ksdfdsfsdfdfg'}"; int i = (int) '/'; System.out.println(s1); try { JSONObject json = new JSONObject(s1);
String s1 = "{'Hi':'\\ksdfdsfsdfdfg'}";
int i = (int) '/';
System.out.println(s1);
try
{
JSONObject json = new JSONObject(s1);
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
我认为,您使用了错误的引号,在JSON中使用了双引号:
String s1 = "{\"Hi\":\"\\ksdfdsfsdfdfg\"}"
这应该行。需要两个反斜杠才能在Java字符串文本中生成一个反斜杠
“\\”
,并且需要将反斜杠加倍才能在JSON字符串中生成一个反斜杠(因为JavaScript与Java具有类似的反斜杠转义和字符串文本规则),因此,需要四个反斜杠:
String s1 = "{'Hi':'\\\\ksdfdsfsdfdfg'}";
如果您这样做:
String s1 = "{'Hi':'\\\\ksdfdsfsdfdfg'}";
try {
JSONObject json = new JSONObject(s1);
System.out.println(json.get("Hi"));
} catch (JSONException e) {
e.printStackTrace();
}
它打印:
\KSDFDSFSDFG
您必须添加4个反斜杠才能使其生效。如果您只是打印解析后的json对象值,您将看到2个反斜杠。但是如果您从
JSONObject
获取值,您将只看到一个
String s1 = "{'Hi':'\\\\ksdfdsfsdfdfg'}";
int i = (int) '/';
System.out.println(s1);
try {
JSONObject json = new JSONObject(s1);
System.out.println(json);//this will print two backslashes
String s = (String) json.get("Hi");
System.out.println(s);//this will print only one
} catch (JSONException e) {
e.printStackTrace();
}
加倍,所以\\\\Yes,因为您只对java转义了斜杠,所以要对json也转义斜杠,请尝试使用四个斜杠:
“{\“Hi\”:\“\\\\ksdfdsfsdfg\”}”
是的,但如果我使用4,我得到2个反斜杠,我只需要1个代码>?{“Hi”:“\\KSDFDSFSDFG”}-sysout(字符串)---{“Hi”:“\\KSDFDSFSG”}-sysout(json)如果从映射中检索值,则只会看到1个反斜杠<代码>字符串s=(字符串)json.get(“Hi”)代码>将给出一个带有2个反斜杠的输出。我只需要1个字符。@ThusharPSujir否,这将给出一个带有1个反斜杠的输出。