我想要这个JSON:
{"lala":{"any":1,"/doc/h2":1}}
但是使用Jetisson(http://jettison.codehaus.org/),如下例所示:
JSONObject extractJson = new JSONObject();
int i = 1;
extractJson.put("lala", new JSONObject()
.put("any",1)
.put("/doc/h" + (i+1), 1) # HERE!
);
System.out.println(extractJson.toString());
返回:
{"lala":{"any":1,"\/doc\/h2":1}}
在任何'/'
前加上'\'我的问题是:为什么?我怎样才能生成正确的json?
任何想法?
答案 0 :(得分:0)
默认情况下,你的图书馆(jettison)看起来很容易被削减。对于json来说这是可以的,任何解析器都应该能够在解析时再次取消它们。
显然,根据JSON: why are forward slashes escaped?,这是因为HTML,特别是脚本标签。
如果你真的不想要它们,你有几个选择:
答案 1 :(得分:0)
如果您可以选择切换库,GSON可以轻松完成此操作:
JsonObject jsonObj = new JsonObject();
jsonObj.addProperty("field1", 5);
jsonObj.addProperty("/doc/h2", 1);
System.out.println(jsonObj.toString());