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

如何在JS中将JSON文件中的对象转换为数组(无需jQuery)

解决JSON字符串转JS数组的问题

首先得说,你的JSON文件里藏了个小坑——groups的值其实是一个字符串形式的非标准JSON,而且这个字符串里的对象键(id、title)没有用双引号包裹,这不符合严格的JSON规范,所以直接解析肯定会出问题。下面给你一步步的解决方案:

步骤1:读取JSON文件

你已经做对这一步了,用require加载没问题:

const json = require('./test.json');

步骤2:修复非标准JSON字符串

因为原字符串里的键没有双引号,我们需要先用正则把它们补上,转换成合法的JSON格式:

// 把没有引号的键替换成带双引号的键
const validJsonStr = json.groups.replace(/(\w+):/g, '"$1":');

这个正则会匹配所有单词字符+冒号的组合,替换成"单词字符":,这样就符合JSON要求了。

步骤3:解析成JS数组

现在用JSON.parse就能把合法的JSON字符串转成你想要的数组了:

const groups = JSON.parse(validJsonStr);
console.log(groups);
// 输出:[{ id: 1, title: 'group 1' }, { id: 2, title: 'group 2' }]

完整代码示例

把上面的步骤合起来就是:

const json = require('./test.json');
const validJsonStr = json.groups.replace(/(\w+):/g, '"$1":');
const groups = JSON.parse(validJsonStr);

// 现在你可以正常使用groups数组了
groups.forEach(group => {
  console.log(`Group ID: ${group.id}, Title: ${group.title}`);
});

额外提醒

如果以后能控制JSON文件的生成,尽量直接生成标准的JSON格式,比如把groups写成真正的数组而不是字符串:

{
  "groups": [
    { "id": 1, "title": "group 1" },
    { "id": 2, "title": "group 2" }
  ]
}

这样你直接const groups = json.groups;就能用,不用额外处理啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:34:52