我有一个数组,如下:
["1", "hello1@example.com", "user111", "something1"],
["2", "hello2@example.com", "user222", "something2"],
["3", "hello3@example.com", "user333", "something3"],
...
["N", "helloN@example.com", "userNNN", "somethingN"]
如何将其转换为JSON:
{
"order" : "1"
, "email": "hello1@example.com"
, "username": "user111"
, "note": "something1"
},
{
"order" : "2"
, "email": "hello2@example.com"
, "username": "user222"
, "note": "something2"
},
{
"order" : "3"
, "email": "hello3@example.com"
, "username": "user333"
, "note": "something3"
},
...
{
"order" : "N"
, "email": "helloN@example.com"
, "username": "userNNN"
, "note": "somethingN"
}
我是自学JavaScript,所以如果您可以建议类似的案例或文档来了解更多信息,我将不胜感激。
谢谢。
答案 0 :(得分:1)
你可以通过多种方式实现这一目标,例如:使用经典的for循环。
我目前支持的方式是使用Array.map:
array = [
["1", "hello1@example.com", "user111", "something1"],
["2", "hello2@example.com", "user222", "something2"],
["3", "hello3@example.com", "user333", "something3"],
...
["N", "helloN@example.com", "userNNN", "somethingN"]
];
var arr2 = array.map(function(el, i) {
return {
order: el[0],
email: el[1],
username: el[2],
note: el[3]
};
});
请参阅here以获取参考。那里有很多好吃的东西。
答案 1 :(得分:0)
这样的事情:
var arrayOfObjs = [];
for(var i in inputArray) {
var data = inputArray[i];
var obj = {
order: data[0],
email: data[1],
username: data[2],
note: data[3]
};
arrayOfObjs.push(obj);
}
console.log(arrayOfObjs);
首先循环遍历数组,因为你知道内部数组总是长度为4,[0 = order,1 = email,2 = username,3 = note],你可以安全地创建新对象并添加它们到一个新的阵列。您也可以在数组中执行此操作,这意味着您的输入数组将使用新格式更新(您基本上不创建新数组):
inputArray[i] = obj; // replace line `arrayOfObjs.push(obj)` with this one
答案 2 :(得分:0)
在纯javaScript中,我会选择Chiesa的解决方案。如果您想使用libraray,可以使用underscore.js来实现它:
var new_array = _.map(array, function(entry) {
return _.object(['order', 'email', 'username', 'note'], entry);
});
var json = JSON.stringify(new_array);