Java - JSON 序列化 - 到期日期:"12/28" 到 "12/28" 即转义正斜杠



在Java中,我想序列化一个包含12/2812/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"}
    

    最新更新