使用JSON解析而不是eval

Ben*_*Ben 2 javascript json

我有这个字符串,我在JAVA中生成并传递给javascript进行解析.

这有效:

var childString = '[{title: "Item 1"},{title: "Folder 2", isFolder: true,children: [{title: "Sub-item 2.1"},{title: "Sub-item 2.2"}]},{title: "Item 3"}]';
var childArray = eval(childString);
Run Code Online (Sandbox Code Playgroud)

但我到处都读过,eval == evil所以我正在研究JSON的解析方式.我试过用JSON.parse(childString),但是我收到了一个错误.

我怎么能以JSON的方式做到这一点?

谢谢!

Mat*_*att 7

您的数据是有效的JavaScript(这就是为什么eval有效),但它不是有效的JSON.例如,您需要用引号括住属性的名称.

例如

'[{"title": "Item 1"} ...
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到JSON规范