0
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"} 吗?

PS:我阅读了将数组转换为对象的主题

我对这种功能感兴趣

4

2 回答 2

2

如果有人滥用了这样的数组,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"}
于 2013-09-18T03:51:05.903 回答
1

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

改为这样做:

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

直接定义对象即可。不需要字符串化和解析

于 2013-09-18T03:48:25.490 回答