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


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

オブジェクト {"f​​irst":"val1","second":"val2"} を返すことはできますか?

PS: Convert Array to Objectトピックを読みました

私は関数のこの方法に興味があります

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 に答える