如何将数组转换为JSON格式

时间:2018-03-19 10:06:09

标签: javascript

例如:

var arr = ["tag1, tag2"]

我希望以JSON格式提供上述数组,如下所示:

var arr = [
    {"name": "tag1"},
    {"name": "tag2"}
]

有人可以帮我解决这个问题。

4 个答案:

答案 0 :(得分:0)

这应该有效:

var arr = ["tag1", "tag2"];
var json= [];
arr.forEach(e => json.push({name:e}));

答案 1 :(得分:0)

您输入的数组应该是,然后您可以使用array.map迭代对象并创建新对象

var arr = ["tag1", "tag2"]

<强>样本

var arr = ["tag1", "tag2"];

var  newList = arr.map(v => {
  return Object.assign({}, { Name: v })
});
console.log(newList);

答案 2 :(得分:0)

您还可以使用map函数在您的阵列上执行此操作:

var objArray = ["tag1", "tag2"].map(el => {
  return { name: el };
});
console.log(objArray);

如果您的问题是有两个不同的数组(如您在上面的评论中提到的那样)并且您想要删除重复的标签,则可以执行以下操作:

var l1 = [
  {'id': 2,'name':'tag1'}, 
  {'id': 3, 'name':'tag2'}, 
  {'id': 4, 'name':'tag3'}];

var l2 = [ "tag5", "tag2", "tag3", "tag6" ];

l2 = l2.map(el => {
  return { name: el };
});

// concat both the arrays
var src = l1.concat(l2);

// remove duplicates
var temp = [];
const unique = src.filter(item => {
  if (temp.indexOf(item.name) === -1) {
    temp.push(item.name);
    return item;
  }
});
console.log(unique);

答案 3 :(得分:-2)

var obj = { "name":"John", "age":30, "city":"New York"};

var myJSON = JSON.stringify(obj);

多数民众赞成......!