2013-02-20 87 views
0

我想这个JSON:字符串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

它看起来像你的图书馆(抛弃)默认情况下削减。这对于json是可以的,任何解析器在解析时都应该能够解除它们。

根据JSON: why are forward slashes escaped?可以发现,这是因为HTML和特定的脚本标记。

如果你真的不想让他们有你有两个选择:

  • 直视如何默认情况下不逃避你的库文件。
  • 更改库。
0

如果你有交换库的选项,GSON可以轻松做到这一点:

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