ASP.NET返回JSON时Postman显示Unicode且无法渲染HTML表格如何解决
Postman 转义响应内容正常展示解决方案
你遇到的情况本质是接口返回的JSON字段中包含被HTML实体转义的内容(例如<对应<、"对应双引号),Postman默认不会对JSON嵌套的HTML内容做自动反转义和渲染,因此会出现raw和pretty标签页展示内容完全一致的情况。可通过以下方式解决:
方案1:使用可视化面板直接渲染HTML
- 打开请求对应的「Tests」标签,粘贴以下代码(请根据实际接口返回的JSON结构,替换代码中的响应字段路径):
// 反转义HTML实体方法 const htmlDecode = (input) => { const doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; } // 提取JSON中存储HTML的字段,示例中为content,可自行修改 const responseData = pm.response.json(); const decodedHtml = htmlDecode(responseData.content); // 将解码后的HTML渲染到可视化面板 pm.visualizer.set(decodedHtml);
- 发送请求后切换到响应栏的「Visualize」标签,即可看到完全渲染后的HTML页面,表格、链接等元素都可以正常展示和交互。
方案2:手动指定Pretty模式解析格式
- 先确认Postman全局设置中JSON解析功能正常开启:点击右上角齿轮图标进入「Settings」,在「General」标签的Response分类下,打开「JSON response parsing」开关
- 回到请求响应页,点击「Pretty」标签右侧的下拉选择框,手动选中「JSON」格式,即可强制Postman按照JSON规则解析响应,转义的HTML实体也会展示为可读的原始格式。
方案3:接口侧关闭HTML转义(可选)
如果希望从根源避免转义问题,可在ASP.NET接口侧配置JSON序列化规则,不对HTML字符做转义:
- ASP.NET Core项目可在
Program.cs中添加如下配置:
builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping; });
配置完成后接口返回的JSON中HTML内容不会被转义,Postman可直接正常展示。
内容的提问来源于stack exchange,提问作者SmallWorld
相关产品推荐
相关产品推荐

