更新
这篇文章中的所有解决方案都回答了我的问题,但我只能将其中一个标记为例外答案......
我有这个JSON结果:
[
{
"unsorted1":[7,7,10,3,3]
},
{
"unsorted2":[8,9,3,10,6]
}
]
我想在JavaScript中创建一个数组,其中每个都有“unsorted1”和“unsorted2”作为键,[7,7,10,3,3]和[8,9,3,10,6]必须保持JSON格式。像未分类1的对象:[7,7,10,3,3]和未分类2:[8,9,3,10,6]
这是我使用console.log(JSON.parse(returnVar));
在浏览器中获得的内容returnVar
参数保存了我上面的JSON结果。
我读了很多并尝试了很多,但没有什么能接近我想要的。不知怎的,我无法完成它。
我尝试修改此代码但没有成功
var resultObj = {};
for (var key in returnVar) {
if (returnVar.hasOwnProperty(key)) {
var val = returnVar[key];
console.log("val: " + val);
var keyName = Object.keys(val);
console.log("key Name: " + keyName);
for (var keykey in val) {
if (val.hasOwnProperty(keykey)) {
var valval = val[keykey]
resultObj[keyName] = JSON.stringify(valval);
}
}
}
}
答案 0 :(得分:1)
你可以试试这段代码:
var response = [
{
"unsorted1":[7,7,10,3,3]
},
{
"unsorted2":[8,9,3,10,6]
}
];
var customObject = response.reduce(function(result, item) {
var keys = Object.keys(item);
if(keys.length) {
result[keys[0]] = item[keys];
}
return result;
}, {});
答案 1 :(得分:1)
var a = [
{
"unsorted1": [7, 7, 10, 3, 3]
},
{
"unsorted2": [8, 9, 3, 10, 6]
}
]
var b = {}
a.forEach(function(x) {
Object.keys(x).forEach(function(y) {
b[y] = JSON.stringify(x[y])
})
})
console.log(b);

答案 2 :(得分:1)
//if the Json result is an object - this is how you parse it
var objJson = [{
"unsorted1": [7, 7, 10, 3, 3]
}, {
"unsorted2": [8, 9, 3, 10, 6]
}];
function parse() {
if (Array.isArray(objJson) === true) {
objJson.map(function(i) {
//alert(JSON.stringify(i));
console.log(JSON.stringify(i));
});
};
}
parse();
//if your json result is a string - this is how you do it
var strJson = "[{\"unsorted1\": [7, 7, 10, 3, 3]}, {\"unsorted2\": [8, 9, 3, 10, 6]}]"; //dont worry about the escaped quotes here - this is a string that is represented here.. but it will work if your JSON result is a string.
function parseString() {
var objJson = JSON.parse(strJson);
if (Array.isArray(objJson) === true) {
objJson.map(function(i) {
//alert(JSON.stringify(i));
console.log(JSON.stringify(i));
});
};
}
parseString();