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

如何在JavaScript中清理OpenAI GPT生成的不规范JSON

修复AI生成的不规范JSON及兼容解析方案

手动转换为标准JSON格式

可以通过正则表达式批量修正未正确转义的特殊字符,将单个反斜杠替换为双反斜杠,同时处理字符串内未转义的双引号:

function normalizeJson(rawJson) {
  // 转义未被反斜杠包裹的双引号
  let fixed = rawJson.replace(/(?<!\\)"/g, '\\"');
  // 转义未被反斜杠包裹的换行符
  fixed = fixed.replace(/(?<!\\)\n/g, '\\n');
  return fixed;
}

// 使用示例
const badJson = `{
  "question": "When are you flying to \"Miami\"?\nPlease provide departure time."
}`;

const validJson = normalizeJson(badJson);
try {
  const result = JSON.parse(validJson);
  console.log(result);
} catch (error) {
  console.error('JSON解析失败:', error);
}

使用兼容宽松JSON的解析库

如果手动处理容易遗漏特殊字符,推荐使用专门的库来解析非标准JSON:

json5

支持解析多种不符合严格JSON规范的格式,包括未正确转义的引号、换行符等:

// 安装依赖:npm install json5
const JSON5 = require('json5');

const badJson = `{
  "question": "When are you flying to \"Miami\"?\nPlease provide departure time."
}`;

const parsedData = JSON5.parse(badJson);
console.log(parsedData);

dirty-json

专为修复和解析非标准JSON设计,能自动处理常见的转义错误:

// 安装依赖:npm install dirty-json
const dirtyJson = require('dirty-json');

const badJson = `{
  "question": "When are you flying to \"Miami\"?\nPlease provide departure time."
}`;

dirtyJson.parse(badJson)
  .then(data => console.log(data))
  .catch(err => console.error('解析错误:', err));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:43:08