我有这个字符串,我从后面的代码中得到:
{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);