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

JavaScript中如何将字符串格式的API对象转换为JSON文件对象

问题描述

现有接口返回非标准格式的类JS对象字符串,示例原始返回内容如下:

obj = "{
  club: {
    title: 'CLUB-Rs 300',
    rows: '2',
    columns: 15,
    price: 300,
    name: 'club',
  },
  executive: {
    title: 'Executive-Rs 200',
    rows: '8',
    columns: 15,
    price: 200,
    name: 'executive',
  },
}"

需要将该字符串转换为标准可使用的JSON对象。

实现方案

这类字符串属于未做标准化处理的JS对象字面量格式,和标准JSON的差异主要是三点:键名未包裹双引号、字符串值用单引号包裹、属性末尾存在多余尾逗号,针对不同使用场景可以选择以下两种实现方式:

方案1:JS运行环境无依赖快速实现(前端/Node.js适用)

不需要手动做字符串替换,直接通过Function构造器解析即可,容错率远高于正则替换:

// 此处rawApiResp为接口返回的原始字符串内容
const rawApiResp = `{
  club: {
    title: 'CLUB-Rs 300',
    rows: '2',
    columns: 15,
    price: 300,
    name: 'club',
  },
  executive: {
    title: 'Executive-Rs 200',
    rows: '8',
    columns: 15,
    price: 200,
    name: 'executive',
  },
}`

// 直接解析为标准JS对象
const parsedData = (new Function(`return ${rawApiResp}`))()
// 如需输出标准JSON格式字符串
const standardJsonStr = JSON.stringify(parsedData, null, 2)

注意事项:

  • 该方法仅适用于接口返回内容完全可信的内部场景,禁止用该方法解析不可信第三方来源的字符串,避免代码注入风险
  • 解析完成后可以直接通过parsedData.club、parsedData.executive读取对应字段内容

方案2:正则替换通用方案(跨语言适用)

如果在Python、Java等非JS运行环境下处理,可以先通过正则修正字符串格式,再用对应语言的原生JSON解析方法处理,以JS环境为例的实现代码如下:

function parseNonStandardJson(str) {
  // 移除原始字符串外层的变量赋值、包裹引号等冗余内容
  let processed = str.trim().replace(/^.*?=\s*['"]|['"]\s*;?$/g, '')
  // 给未加引号的键名补充双引号
  processed = processed.replace(/([{,]\s*)([a-zA-Z0-9_]+)\s*:/g, '$1"$2":')
  // 将单引号包裹的字符串值替换为双引号包裹
  processed = processed.replace(/'/g, '"')
  // 移除属性末尾多余的尾逗号,兼容低版本JSON解析器
  processed = processed.replace(/,\s*([}\]])/g, '$1')
  // 解析为标准对象
  return JSON.parse(processed)
}

// 调用示例
const result = parseNonStandardJson(obj)

两种方案最终解析得到的标准JSON结构如下:

{
  "club": {
    "title": "CLUB-Rs 300",
    "rows": "2",
    "columns": 15,
    "price": 300,
    "name": "club"
  },
  "executive": {
    "title": "Executive-Rs 200",
    "rows": "8",
    "columns": 15,
    "price": 200,
    "name": "executive"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:27:40