2013-02-20 86 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());