在Java中,我想序列化一个包含12/28
到12/28
等值的JSON字符串
使用Apache lib StringEscapeUtils,然后使用jackson lib进行序列化,输出为12\/28
:电流输出:
{
"expiryDate": "12\/28"
}
但是,我希望输出为"12/28">所需输出:
{
"expiryDate": "12/28"
}
有什么建议吗?
根据JSON规范(例如http://json.org),/
是一个有效的JSON转义序列。
然而,序列/
的含义与/
相同,因此使用/
没有什么意义。(一致的JSON解析器会将其读取为/
。(
当将数据序列化为JSON时,我不知道有任何JSON库会将/
输出为/
。然而,json simple(link,link(似乎总是以/
:的形式逃离/
org.json.simple.JSONValue
中另一方面,我不知道有一个JSON库,当看到字符串中的文字时,它不会转义。(IMO,除非它是将已经格式化的JSON字符串片段拼接在一起的设计功能的一部分,否则这将被打破。(
在探索了一些选项后,能够使用以下方法实现所需的输出。
使用的库:
compile 'com.googlecode.json-simple:json-simple:1.1.1'
代码示例:
JSONObject jsonObject = new JSONObject();
jsonObject.put("expiryDate", "12/28");
String jsonString = jsonObject.toString();
输出:
{"expiryDate":"12/28"}