-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 回答