如何在JSON中格式化字符串?有哪些更优的实现方案?
JSON多行文本属性排版优化方案
方案1:使用Markdown作为内容标记(推荐,灵活度最高)
- 无需硬编码大量
\n、\t控制格式,用轻量的Markdown语法标记段落、列表、标题等结构,可读性和可维护性远高于纯转义字符排版。 - 改造后的存储示例:
"Actions": "## Actions required:\n1. Action 1\n2. Action 2\n\n## Other Actions\n1. Action3\n2. Action 4"
- 落地说明:Java侧可以直接将Markdown内容经过正常转义后存入JSON字段,读取使用时,前端可以用任意Markdown渲染库直接生成带格式的页面,后端导出纯文本/Word/PDF也有成熟的工具链支持,格式调整不需要修改存储层内容。
方案2:结构化拆分存储(适合内容逻辑固定的场景)
- 如果你的多行文本逻辑固定(比如本示例中都是分组的行动列表),可以直接拆分为JSON结构化对象存储,彻底不用处理字符串排版逻辑,渲染层自行控制格式即可。
- 改造后的存储示例:
"Actions": [ { "groupName": "Actions required", "actionItems": ["Action 1", "Action 2"] }, { "groupName": "Other Actions", "actionItems": ["Action3", "Action 4"] } ]
- 落地说明:Java侧直接封装对应实体类,序列化后存入数据库即可,后续需要调整排版样式只需要修改渲染层逻辑,不需要改动历史存储数据。
方案3:纯文本场景优化
如果不想引入标记语言也不想调整存储结构,保留\n、\t排版的前提下可以优化开发体验:
- Java 15及以上版本可以使用文本块(Text Block)编写多行文本,不需要手动拼接
\n,序列化时会自动处理转义逻辑,示例代码:
String actionContent = """ Actions required: 1. Action 1 2. Action 2 Other Actions 1. Action3 2. Action 4 """;
- 注意序列化时避免重复转义,防止读取到的内容出现
\\n这类无法识别为换行的错误字符。
内容的提问来源于stack exchange,提问作者Apurva Sawant
相关产品推荐
相关产品推荐

