繁体   English   中英

以/(斜杠)开头的字符串中的JSON / Jettison错误格式

[英]JSON/Jettison wrong format in string started with / (slash)

我想要这个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?

任何想法?

默认情况下,您的资料库(jettison)换码符看上去似乎很有限。 对于json来说还可以,并且任何解析器都应该能够在解析时再次转义它们。

显然,根据JSON:为什么要转义正斜杠? 这是因为HTML,尤其是脚本标签。

如果您真的不想要它们,则有两种选择:

  • 查看您的库文档,了解默认情况下如何不转义。
  • 更改库。

如果您可以选择切换库, 那么GSON可以轻松做到这一点:

JsonObject jsonObj = new JsonObject();
jsonObj.addProperty("field1", 5);
jsonObj.addProperty("/doc/h2", 1);
System.out.println(jsonObj.toString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM