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

如何去除API返回JSON中的转义字符与换行符?

清理API返回的嵌套JSON格式异常问题

问题背景

API返回的数据中,content和hierarchy字段为嵌套的JSON字符串,包含大量转义字符(\n、\r、\t)及转义斜杠,直接使用普通字符替换或单次JSON解析无法完成清理。

解决步骤

核心思路:先解析外层JSON,再单独处理嵌套的JSON字符串字段,补全异常结构后完成解析与清理。

1. 解析外层JSON

先将API返回的原始字符串解析为JS对象,获取带转义的content和hierarchy字段值:

// apiResponse 为API返回的原始字符串
const rawData = JSON.parse(apiResponse);

2. 处理content字段

原始content字符串存在未闭合的JSON结构,需先补全再清理转义字符:

let cleanedContentStr = rawData.content;
// 补全末尾缺失的JSON闭合标记(根据原始数据结构调整)
cleanedContentStr = cleanedContentStr.replace(/<p>$/, '') + '}}';
// 移除所有转义的换行、回车、制表符
cleanedContentStr = cleanedContentStr.replace(/\\n|\\r|\\t/g, '');
// 解析为JSON对象
const contentData = JSON.parse(cleanedContentStr);

3. 处理hierarchy字段

hierarchy结构完整,直接清理转义字符后解析:

let cleanedHierarchyStr = rawData.hierarchy.replace(/\\n|\\r|\\t/g, '');
const hierarchyData = JSON.parse(cleanedHierarchyStr);

4. 可选:格式化输出

若需要可读性强的格式化字符串,使用JSON.stringify添加缩进:

const formattedContent = JSON.stringify(contentData, null, 2);
const formattedHierarchy = JSON.stringify(hierarchyData, null, 2);

原方法无效原因

  • 直接使用replace(/\\n/g, ''):未先解析外层JSON,无法定位嵌套字符串中的转义字符。
  • 直接JSON.stringify(JSON.parse(json object)):仅处理外层JSON结构,未解析content和hierarchy字段内的嵌套JSON字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:45:18