Javascript 格式化字符串到js数组
我正在使用一个MVC应用程序,我的控制器从mongodb获得如下字符串:Javascript 格式化字符串到js数组,javascript,arrays,model-view-controller,Javascript,Arrays,Model View Controller,我正在使用一个MVC应用程序,我的控制器从mongodb获得如下字符串: str = "[{ title: 'My title', items: [{ name: 'item1', link: '#' }, { name: 'item2', link: '#' }] }]" 我试图在视图中将它用作js数组,但我找不到任何方法来转换它 请注意,该数组将有一些子数组作为项,还有一些子数组,依此类推 有什么帮助吗?也许我必须在我的业务层中构建数组,而不是返回字符串?解决方案是JSON: 看一下文档:
str = "[{ title: 'My title', items: [{ name: 'item1', link: '#' }, { name: 'item2', link: '#' }] }]"
我试图在视图中将它用作js数组,但我找不到任何方法来转换它
请注意,该数组将有一些子数组作为项,还有一些子数组,依此类推
有什么帮助吗?也许我必须在我的业务层中构建数组,而不是返回字符串?解决方案是JSON:
看一下文档:
下面是您需要做的:
var obj = JSON.parse(str);
这将为您提供一个Javascript对象JSON=JavaScriptObjectNotation,然后您可以这样访问它:
var firstTitle = obj[0].title; // 'My title'
var itemsArrayOfFirstObject = obj[0].items; // an Array of items
var linkOfForstItemInFirstObject = obj[0].items[0].link; // '#'
编辑:
我发现在您的示例中,字符串不是有效的JSON格式解决方案是JSON:
看一下文档:
下面是您需要做的:
var obj = JSON.parse(str);
这将为您提供一个Javascript对象JSON=JavaScriptObjectNotation,然后您可以这样访问它:
var firstTitle = obj[0].title; // 'My title'
var itemsArrayOfFirstObject = obj[0].items; // an Array of items
var linkOfForstItemInFirstObject = obj[0].items[0].link; // '#'
编辑:
我注意到,在您的示例中,字符串不是有效的JSON格式不知道应用程序的其他结构,将该字符串转换为对象的简单方法是使用eval
也就是说,不要对您不完全信任的字符串使用eval。它很容易被滥用和利用。对应用程序的结构一无所知,将该字符串转换为对象的简单方法是使用eval
也就是说,不要对您不完全信任的字符串使用eval。它很容易被滥用和利用。以下是一个函数,该函数将字符串更改为有效的JSON,然后使用JSON.parse作为对象返回: 函数parsestr{ 变量t=, 特殊=“[]{}:,”, qt; str=str.split; forvar i=0;i