我有一个简单的JSON对象如下:
{"status":"Success","action":"Redirect","sessionid":6467349943156736,"url":"https://myapplicationing.com/go?id=1000"}
我创建了如下的JSON:
JSONObject json = new JSONObject();
json.put("status", "Success");
json.put("action", "Redirect");
json.put("sessionid", "6467349943156736");
json.put("url", "https://myapplicationing.com/go?id=1000");
当我将这个JSON作为响应返回时
resp.setContentType("application/json");
resp.setHeader("Cache-Control", "no-cache");
resp.setCharacterEncoding("utf-8");
try {
// json.write(resp.getWriter());//[tried]
// Gson gson = new GsonBuilder().disableHtmlEscaping().create();
resp.getWriter().println(json.toString());
// resp.getWriter().println(gson.toJson(json));//[TRIED]
} catch (Exception e) {
e.printStackTrace();
}
但它仍然给我返回以下JSON字符串:
{"status":"Success","action":"Redirect","sessionid":6467349943156736,"url":"https://myapplicationing.com/go?id\u003d1000"}
这是为什么要对JSON字符串进行
编码
。它将"="替换为"\u003d"。我尝试了这个方法:
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
resp.getWriter().println(gson.toJson(json));
但是没有起作用。有什么解决方案吗?
"a\u003db"
和"a=b"
是完全相同的 JSON 字符串。 - fge