8

このオブジェクトを JSON 配列にプッシュしたい

var obj =  {'x':21,'y':32,'z':43};

私のJSONキー:値は動的に来るので、キーを使用してアクセスすることはできないので、ループメソッドを使用しました。

var str = {xA : []}; //declared a JSON array

for (var key in obj) {

    alert(' name=' + key + ' value=' + obj[key]);

     str.xA.push({
         key :   obj[key]
     })
}

値を警告すると、キーと値が適切に取得されますが、配列にプッシュすると、コードのように x、y、z などの実際のキーではなく、キーが常に「キー」として送信されます。

どんな助けでも大歓迎です。

4

2 に答える 2

11

リテラル表記では、キーの式を使用できません。最初にオブジェクトを作成してから、代わりにブラケット表記を使用する必要があります。

var tmp = {};
tmp[key] = obj[key];
str.xA.push(tmp);
于 2013-09-30T18:43:20.937 に答える
3

表記法を使用する必要があります[]。そうしないと、常にキーkeyの値ではなくキー名になります。

 str.xA.push({
     key :   obj[key]
 })

   var tmp= {};
   tmp[key] = obj[key]
   str.xA.push(tmp)
于 2013-09-30T18:43:57.807 に答える