-1

jqueryを使って以下の形式でjsonを形成したいのですが、期待通りの形式にできませんでした。私の実際の結果は、最後のキーと値のペアのみを出力しています。

ejs ファイルのコード スニペット

    var count=0;
    var meta=[];
    $.each(this.metadata, function(key, value){
    <input type="text" id="keyfun" name='meta[count].key' value='<%=key%>' size="40"/>
    <input type="text" id="valfun" name='meta[count].value' value='<%=value%>' size="40"/>
    count++;

メタデータ オブジェクトには、キーと値のペアが含まれています。キーと値をjson形式で出力する必要があります.これについてアドバイスしてください..

Expected Result:
{"meta":
[
{"key":"user ","value":"test1"},
{"key":"test","value":"test2"},
]
}

実結果

{
 "meta": [
         {
          "key": "test1",
          "value": "test"
         }
         ]
}

メタデータ オブジェクトの値を配列に追加し、オブジェクトの配列から反復しようとしました。1)メタデータ値を配列に追加 $.each(this.metadata, function(key, metaValue){arr.push({key1: key, value1: metaValue}); }); 2) 配列オブジェクトの繰り返し
$.each(arr, function (index, metaValue) { '/> ' size="40"/> });

出力:{"metaValue": {"key1": "mobile","value1": "wsmuser"}}

最後のキーと値のペアを取得しましたが、完全なキーと値のペアを取得できません...これについてアドバイスしてください。よろしく、ラージ

4

1 に答える 1

0

$.eachがどのように機能するかについての赤。私はこのように何とかします:

var meta=[];
$.each(this.metadata, function(index, metaValue){
  <input type="text" id="keyfun" name='metaValue.key' value='<%=metaValue.key%>' size="40"/>
  <input type="text" id="valfun" name='metaValue.value' value='<%=metaValue.value%>' size="40"/>
});

もちろん ifthis.metadataはオブジェクトの配列で、それぞれにキーと値があります。私はそれをテストしませんでしたが、それはこのようなものになるでしょう:)

于 2012-09-19T15:56:01.133 に答える