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

如何将非标准JSON格式的字符串表达式转换为JS object对象

非标准JS对象字面量字符串转对象的解决方案
  • 方案1:直接用new Function解析(推荐,适配所有合法JS对象字面量场景)
    你存储在div里的本身就是合法的JS对象字面量语法,不需要转成标准JSON就能直接解析,这个方法实现最简单:
const rawStr = $("div").text();
const targetObj = new Function(`return ${rawStr}`)();
// 测试输出
console.log(targetObj.name) // 输出 Jeff

注意:这个方案默认你完全信任div内的内容来源,没有恶意脚本注入的风险,适合自己可控的前端场景使用。

  • 方案2:正则补全键名引号转标准JSON后解析
    如果需要严格规避执行任意代码的风险,可以通过正则替换给未加引号的键补双引号,再用JSON.parse解析:
const rawStr = $("div").text();
// 正则匹配所有未带引号的对象键,统一补双引号
const standardJsonStr = rawStr.replace(/(\s*?{\s*?|\s*?,\s*?)(['"])?([a-zA-Z0-9_]+)(['"])?:/g, '$1"$3":');
const targetObj = JSON.parse(standardJsonStr);

注意:这个正则默认对象键都是由英文、数字、下划线组成的合法标识符,如果你的键包含特殊字符、空格等需要自行调整正则规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:27:04