JSON是一種常用的數據交換格式,在Java中使用JSON相對來說比較方便。但是在處理一些特殊的場景下,JSON中出現帶斜杠的情況,這時候就需要進行一些特殊處理。
比如以下JSON字符串:
{ "name":"張三\/李四", "age":20 }
注意到"name"字段中有一個斜杠,這是為了實現在JSON字符串中插入特殊字符。但如果直接使用Java自帶的JSON庫進行解析,則無法正確處理,會出現異常。
為了解決這個問題,可以使用第三方庫,例如Gson或Jackson。
Gson的處理方式如下:
Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String jsonStr = "{\"name\":\"張三\\/李四\",\"age\":20}"; MyObj obj = gson.fromJson(jsonStr, MyObj.class);
需要使用disableHtmlEscaping方法禁止HTML轉義。
Jackson的處理方式如下:
ObjectMapper mapper = new ObjectMapper(); mapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true); String jsonStr = "{\"name\":\"張三\\/李四\",\"age\":20}"; MyObj obj = mapper.readValue(jsonStr, MyObj.class);
需要使用ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER配置允許轉義斜杠。
以上兩種方式都可以正確處理帶斜杠的JSON字符串,不同的只是使用的庫不同。最終得到的MyObj對象中,name字段的值為"張三/李四"。
上一篇css 圖片經過放大縮小
下一篇html登錄界面制作代碼