在JavaScript中,将字符串转换为JSON对象通常使用JSON.parse()方法。但如果你想要其他方法,这里给出四种不同的方法:

1. 使用JSON.parse()

这是最常见且推荐的方法,它可以将一个格式正确的JSON字符串转换为一个JavaScript对象。

javascriptlet jsonString = '{"name": "John", "age": 30, "city": "New York"}';
let jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name); // 输出 "John"

2. 使用eval()

eval()函数也可以将JSON字符串转换为对象,但它有安全隐患,因为它会执行字符串中的JavaScript代码。因此,除非你能确保字符串来源是可信的,否则不建议使用这个方法。

javascriptlet jsonString = '{"name": "John", "age": 30, "city": "New York"}';
let jsonObject = eval('(' + jsonString + ')');
console.log(jsonObject.name); // 输出 "John"

注意:eval()函数在这里使用了一个小技巧,即在字符串的两边加上了括号()。这是为了确保eval()函数解析整个字符串作为一个表达式,而不是多个独立的语句。

3. 使用Function构造函数

eval()类似,new Function()也可以将JSON字符串转换为对象,但它同样存在安全隐患。

javascriptlet jsonString = '{"name": "John", "age": 30, "city": "New York"}';
let jsonObject = new Function('return ' + jsonString)();
console.log(jsonObject.name); // 输出 "John"

4. 手动解析

如果你想要一个不依赖内置函数的解决方案,你可以自己编写一个函数来解析简单的JSON字符串。但请注意,这种方法只适用于格式非常简单的JSON字符串,并且不支持嵌套的对象或数组。

javascriptfunction parseSimpleJson(str) {
let obj = {};
let pairs = str.split(',');
for (let pair of pairs) {
let [key, value] = pair.split(':');
obj[key.trim()] = value.trim().replace(/"/g, '');
}
return obj;
}

let jsonString = '{"name": "John", "age": 30, "city": "New York"}';
let jsonObject = parseSimpleJson(jsonString.replace('{', '').replace('}', '').replace(/"/g, ''));
console.log(jsonObject.name); // 输出 "John"

这个parseSimpleJson函数只能处理格式非常简单的JSON字符串,并且它假设所有的键和值都是字符串,且没有嵌套的对象或数组。对于更复杂的JSON字符串,你需要编写更复杂的解析逻辑,或者最好使用内置的JSON.parse()函数。

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:25 天前 )
960b763e 3 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐