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

如何在JavaScript中解析无键名引号的类JSON字符串为对象

无引号键JSON字符串解析方案

方法1:正则替换补全键名引号(推荐,无代码执行风险)

可以通过正则匹配所有未被引号包裹的键名,自动补全双引号后再调用JSON.parse解析,适配绝大多数常规场景,代码示例如下:

var mystring = `{
    name: "hello",
    value: 1234
    }`
// 正则匹配规则:匹配冒号前、未被单/双引号包裹的合法键名字符
const formattedStr = mystring.replace(/(['"])?([a-zA-Z0-9_]+)(['"])?:/g, '"$2": ')
const jsonobj = JSON.parse(formattedStr)
console.log(jsonobj) // 输出 {name: 'hello', value: 1234}

若你的业务场景中键名包含特殊字符、空格,只需调整正则匹配规则即可适配。

方法2:利用JS原生语法解析(仅适用于字符串来源100%可信的场景)

你给出的字符串本身符合JS对象字面量语法规则,可以直接用new Function或eval解析,无需额外处理格式:

var mystring = `{
    name: "hello",
    value: 1234
    }`
// 方式1:用new Function实现
const jsonobj = new Function('return ' + mystring)()
// 方式2:用eval实现
// const jsonobj = eval('(' + mystring + ')')
console.log(jsonobj) // 输出 {name: 'hello', value: 1234}

警告:如果待解析的字符串来自用户输入、不可信的外部接口,禁止使用该方法,会存在XSS等代码注入风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:09:03