You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Rest Docs未处理HTML标签,JSON格式化问题求助

解决Spring Rest Docs中JSON无法通过<pre>正确格式化的问题

遇到这种<pre>标签被转义成HTML实体的情况,通常是Asciidoctor默认会转义文档中的HTML标签导致的,这里有几个靠谱的解决办法:

1. 用Asciidoctor原生代码块语法替代手动写<pre>

Asciidoctor本身就支持代码块渲染,完全不需要手动写<pre>标签,还能自带语法高亮。要展示JSON的话,直接这么写:

[source,json]
----
{
  "name": "test",
  "value": 123
}
----

生成的HTML会自动转换成带<pre><code>结构的格式化代码块,JSON格式完美保留,还会有语法高亮效果,这也是Spring Rest Docs官方推荐的方式。

2. 用pass:[...]让Asciidoctor不转义HTML标签

如果你一定要手动使用<pre>标签,可以把包含<pre>的内容用pass:包裹起来,告诉Asciidoctor直接传递这段内容不做转义:

pass:[<pre>{
  "name": "test",
  "value": 123
}</pre>]

这样生成的HTML里就会保留原始的<pre>标签,JSON也能正常格式化显示。

3. 利用Spring Rest Docs内置Snippet生成格式化JSON

如果你的JSON是请求体或响应体的示例,更推荐直接用Spring Rest Docs的API生成,比如在测试代码里指定请求体内容:

mockMvc.perform(post("/api/endpoint")
        .contentType(MediaType.APPLICATION_JSON)
        .content("{\"name\":\"test\",\"value\":123}"))
    .andDo(document("create-endpoint",
        requestBody()
            .content(ContentFormat.JSON, "{\"name\":\"test\",\"value\":123}")
    ));

这样Rest Docs会自动帮你生成格式化好的JSON代码块,不需要手动在adoc里写任何HTML标签,既规范又不容易出错。

内容的提问来源于stack exchange,提问作者user1883212

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:50:37