通过JSON.parse将数组转换为Object

时间:2013-09-18 03:45:37

标签: javascript jquery

var arr=[];
arr['first']='val1';
arr['second']='val2';


var json=JSON.stringify(arr);
var obj=JSON.parse(json);  //obj is array

我可以返回对象{“first”:“val1”,“second”:“val2”}?

P.S。:我读了Convert Array to Object主题

我对函数的这种方式感兴趣

2 个答案:

答案 0 :(得分:2)

如果有人abused arrays like that,JSON对您没有帮助。它只会序列化Array对象的数字索引,没有别的。手动复制属性:

var obj = {};
for (var prop in arr)
    if (arr.hasOwnProperty(prop)) // don't copy enumerables from Array.prototype
        obj[prop] = arr[prop];

console.log(obj); // {"first":"val1","second":"val2"}

答案 1 :(得分:1)

您不应该使用数组来表示:

请改为:

var obj = {first:"val1",second:"val2"};

直接定义对象。字符串化和解析不是必需的