我有这个字符串,我从后面的代码中得到:

{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}


我需要将其转换为这样的对象数组:

var Categories =
[
    {Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"},
    {Name:"Dress", CatGroupName:"Clothes", Gender:"female"},
    {Name:"Belt", CatGroupName:"Leather", Gender:"child"}
];


因为我需要执行一些功能。 (如$.grep等)

如何转换?提前感谢。

最佳答案

最好的解决方案是使后端返回正确的JSON,而无需在客户端上执行任何特殊处理。要使其成为有效的JSON,您需要将键括在双引号中,并将整个字符串括在方括号中以使其成为数组。

但是,如果您不能触摸后端,则可以使用新功能对其进行转换。



var str = '{Name:"Tshirt", CatGroupName:"Clothes", Gender:"male-female"}, {Name:"Dress", CatGroupName:"Clothes", Gender:"female"}, {Name:"Belt", CatGroupName:"Leather", Gender:"child"}';
var obj = (new Function("return [" + str + "];")());
console.log(obj);

10-08 09:30