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

JavaScript如何将API返回的特殊格式键值对字符串转换为对象数组

JavaScript实现非标准格式字符串转标准对象数组

推荐实现方案

核心思路是通过两次正则替换,把非标准的键值对格式转换为合法JSON格式,再用JSON.parse解析为JS对象,安全且兼容性高。

完整可运行代码

// 模拟你拿到的API响应对象
const apiResponse = {
  "1012": "[{oId=151, oName=store city}, {oId=247, oName=customer city}]"
};

// 1. 取出1012对应的原始格式字符串
const rawStr = apiResponse['1012'];

// 2. 两步正则转换为合法JSON字符串
const validJsonStr = rawStr
  // 第一步:匹配键名,把等号替换为冒号,同时给键名加双引号
  .replace(/(\w+)=/g, '"$1":')
  // 第二步:匹配值,数字类型保留原始格式,字符串类型加双引号
  .replace(/:([^,}]+)/g, (match, value) => {
    const trimVal = value.trim();
    return !isNaN(Number(trimVal)) ? `:${trimVal}` : `:"${trimVal}"`;
  });

// 3. 解析为标准对象数组
const targetArray = JSON.parse(validJsonStr);

console.log(targetArray);
/* 输出结果和你要求的格式完全一致:
[
  { oId: 151, oName: 'store city' },
  { oId: 247, oName: 'customer city' }
]
*/

注意事项

  • 如果API返回的属性值可能包含等号,可把第一步的正则替换为/(?<=[{,]\s*)(\w+)=/g,只会匹配大括号、逗号后面紧跟的键名,不会误改属性值内部的等号。
  • 不推荐使用eval直接执行原始字符串,存在XSS安全风险,仅在100%确定API返回内容完全可信的场景下可临时使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:57:02