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

如何解析经反斜杠转义处理的对象数组字符串?

解决多对象拼接字符串转JSON的问题

你当前的核心问题不是正则逻辑,而是目标字符串本身不符合JSON语法规范——多个JSON对象直接用逗号拼接,JSON要求多对象必须包裹在数组[]中,这才是逗号引发解析失败的根源。你的正则用来处理17位及以上数字(避免JS解析时精度丢失)的逻辑是合理的,但得先把字符串修正为合法结构。

修正方案:

  • 给原始字符串前后添加[和],将其转为合法的JSON数组格式
  • 再用正则把长数字转换为字符串,防止大数字精度丢失
  • 最后执行JSON.parse解析

修正后的代码:

const jsonStr = "{\"userId\":44, \"userName\": \"Jim Coleman\"},{\"userId\":33515, \"userName\": \"Grace Mamaradlo\"}";
// 先包裹成数组,再处理长数字转字符串
const validJson = `[${jsonStr}]`.replace(/("[^"]*"\s*:\s*)(\d{17,})/g, '$1"$2"');
const obj = JSON.parse(validJson);

console.log(obj);

如果后续遇到更复杂的边缘场景(比如对象内部含特殊字符、嵌套结构),可以考虑拆分单个对象再逐一处理,但针对当前示例,上述方法完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:05