在Java中,我想序列化一个包含12/28
到12\/28
之类的值的JSON字符串
使用Apache lib StringEscapeUtils,然后使用jackson lib进行序列化,输出显示为12\\/28
:
当前输出:
{
"expiryDate": "12\\/28"
}
但是,我希望输出为“ 12/28” 所需的输出:
{
"expiryDate": "12\/28"
}
有什么建议吗?
答案 0 :(得分:2)
根据JSON规范(例如http://json.org处的语法图),\/
是有效的JSON转义序列。
但是序列\/
与/
的含义相同,因此使用\/
毫无意义。 (一致的JSON解析器会将其读取为/
。)
我不是并不知道任何将数据序列化为JSON时将/
输出为\/
的JSON库。但是,似乎json-simple(link,link)总是以/
的形式转义\/
:
org.json.simple.JSONValue
中。另一方面,我不知道不会看到字符串时将其转义为字符串\
的JSON库。 (IMO,除非将其作为将已格式化的JSON字符串片段拼接在一起的设计功能的一部分,否则这将被打破)。
答案 1 :(得分:-1)
在研究了一些选项之后,可以使用以下方法实现所需的输出。
使用的库:
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"}