如何将这个JavaScript字符串转换为JavaScript数组/对象。

9

可能是重复问题:
如何轻松解析JSON?

我有这个字符串:

[{text: 'First Option',  value: 'first'},{text: 'Second Option', value: 'second'},{text: 'Third Option',  value: 'third'}]

如何在JavaScript中将其转换为相同形式的数组/对象?
5个回答

25

你可以使用 var data = JSON.parse(yourString);var data = eval('(' + yourString+ ')');


1
JSON.parse() 无法处理此字符串! - haemse

9
这是 eval 实际上有用的时候之一:
var x = eval(yourString);

但是像其他答案建议的那样,使用JSON.parse肯定更安全。

这里有一个使用eval版本的工作示例


4
要正确地评估这样的字符串,您实际上需要在括号中将其包裹,例如 var x = eval('(' + yourString + ')'),否则您将会得到一个 SyntaxError - Jon Newmuis
@BradChristie - 是的,我同意!但如果不能使用jQuery,并且需要支持旧版浏览器... - James Allardice
1
不要使用 EVAL……它是万恶之源……还有蘑菇!!! - Manse

1
使用 JSON.parse。
var obj = JSON.parse(str);

2
无效的 JSON,该字符串无法解析。 - Joe
1
JSON是一个对象,但对象不一定是JSON。因此,这种方式不是预期的路径。 - vsync

0

只需将一个变量设置为该字符串即可。

var new_object = [{text: 'First Option',  value: 'first'},{text: 'Second Option', value: 'second'},{text: 'Third Option',  value: 'third'}]

2
有些东西告诉我这不是一个“如何在JavaScript中复制/粘贴并获取对象”的问题(虽然我可能错了)。 - Brad Christie

0
如果您使用jQuery,您可以使用 jQuery.parseJSON。 如果没有,您可以从源代码中提取该函数并将其放置在您的页面上,从而获得相同的优势。

这与 JSON.parse() 相同... - vsync

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接