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

如何在JavaScript/TypeScript中将非标准字符串转为JSON对象?

解决非标准字符串转合法JSON的方案

你的目标字符串存在三个不符合JSON规范的问题:

  • 对象的键没有用双引号包裹
  • 字符串使用了单引号而非双引号
  • 多个对象直接并列,没有用数组包裹

可以通过以下字符串处理步骤将其转换为合法JSON:

处理代码示例(JavaScript)

// 原始非标准字符串(注意去掉外层多余的双引号)
const rawStr = `{
  status: 'success',
  message: 'The user is able to enter data in search bar.'
}
{ status: 'success', message: 'Number of cities with letter p are 4.' }
{
  status: 'success',
  message: 'Success messagecity addedappears in green'
}
{
  status: 'success',
  message: 'The city added is visible under Cities header.'
}`;

// 1. 给对象键添加双引号;2. 替换单引号为双引号;3. 处理对象分隔并包裹成数组
const validJsonStr = `[${rawStr
  .replace(/(\w+):/g, '"$1":')
  .replaceAll("'", '"')
  .replace(/}\s*{/g, '}, {')}]`;

// 解析为JSON对象
const jsonObj = JSON.parse(validJsonStr);
console.log(jsonObj);

步骤说明

  • 给键加双引号:用正则/(\w+):/g匹配所有键名+冒号的格式,替换为带双引号的键名,符合JSON对键的要求。
  • 替换单引号:JSON规定字符串必须用双引号,直接替换所有单引号即可。
  • 包裹成数组:把多个并列对象之间的空白替换为逗号分隔,再用[]包裹,形成合法的JSON数组结构。

如果你的原始字符串外层带有额外的双引号(如示例中的

代码所示),需要先通过rawStr.slice(1, -1)去掉首尾的双引号再进行上述处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:31:15