将字符串解析为对象

时间:2016-01-05 22:12:18

标签: javascript

我从数据库中获取data,但是当我尝试使用json解析它时,会产生一个错误,表明这不是一个有效的json格式。 (因为它的值不在引号中)。

  

我无法对data有价值的&如果可能,我不想使用replace

var data = "a,b,c";
data = JSON.parse('['+ data +']'); //error because there is no quotation marks

是否有任何其他JavaScript函数可用于将数据值解析为json甚至数组。

3 个答案:

答案 0 :(得分:3)

尝试:

var data = "a,b,c".split(',');
obj = [];
for (var i = 0; i < data.length; i++)
{
  obj.push({'0': data[i]});
}

答案 1 :(得分:3)

如评论中所述,您的数据不是JSON格式,因此请勿尝试将其解析为JSON。

相反,它似乎代表以逗号分隔的值列表。要获得具有这些值的数组,可以使用String.prototype.split

然后,要将每个项目包装在一个对象中,您可以使用Array.prototype.map

"a,b,c".split(',').map(function(item) {
  return {0: item};
});

使用ES6 arrow functions简化,

"a,b,c".split(',').map(i => ({0:i}));

答案 2 :(得分:2)

使用split()方法将字符串拆分为子字符串数组

var data = "a,b,c";
data = data.split(',');
arr = [];

for(var i = 0; i < data.length; i++){
    arr.push({0: data[i]})
}
console.log(data);
console.log(arr);