java - Java - JSON 序列化 - 到期日期:“12/28”到“12\/28”即转义正斜杠
问题描述
12/28
在 Java 中,我想序列化一个包含值的 JSON 字符串,例如12\/28
使用 Apache lib StringEscapeUtils 然后进行序列化,使用 jackson lib,输出为12\\/28
:
当前输出:
{
"expiryDate": "12\\/28"
}
但是,我希望输出为“12/28” 所需的输出:
{
"expiryDate": "12\/28"
}
有什么建议么?
解决方案
根据 JSON 规范(例如http://json.org上的语法图),\/
是一个有效的 JSON 转义序列。
但是序列的\/
含义与 相同/
,因此使用 没有什么意义\/
。(符合标准的 JSON 解析器会将其读取为/
.)
我不知道在将数据序列化为 JSON 时/
会输出 a 的任何 JSON 库。\/
但是,似乎 json-simple ( link , link ) 总是将 a 转义/
为\/
:
- 我不知道他们为什么决定这样做。
- 实现此行为的代码在方法中
org.json.simple.JSONValue
。
另一方面,我不知道有一个 JSON 库在看到一个字符串时不会转义字符串中的文字。\
(这将被破坏,IMO,除非它是用于将已格式化的 JSON 字符串片段拼接在一起的设计功能的一部分。)
推荐阅读
- python - 我在向我的 tkinter 框架添加文本框时遇到问题,我可以显示标签,但我无法显示文本框
- kubernetes - 如何从远程 Promethues 服务器监控 Kubernetes 集群中运行的应用程序
- c# - 来自 S3 的图像未加载,403 Forbidden
- javascript - 为什么我有图像/图标的散列副本
- forms - 使用 fpdm 将图像添加到 pdf 表单
- javascript - 如何从 Binance Websocket NPM 包中获取上一卷
- jbpm - 为 jbpm 服务任务调用 spring bean
- django - 根据来自根对象的更多字段过滤 django Prefetch
- flutter - 周期性定时器在initState()中被复制
- embedded-linux - systemd初始化时如何禁用根分区的自动挂载