【问题标题】:Json Format using jquery使用 jquery 的 Json 格式
【发布时间】:2012-09-11 19:59:19
【问题描述】:

我想使用 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) { '/> ' 大小="40"/> });

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

我得到了最后一个键和值对,没有得到完整的键和值对...请就此提出建议。 问候,拉吉

【问题讨论】:

  • 能否请您从浏览器发布完整呈现的 javascript?那段看起来有点像 javascript 的代码显然是不完整的。
  • 我想不出任何理由你为什么想做这样的事情......但我猜 jquery funktion .serializeArray();已经做你想做的了。

标签: java javascript jquery html rest


【解决方案1】:

关于$.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"/>
});

当然,如果this.metadata 是一个对象数组,每个对象都有键和值。我没有测试它,但它会是这样的:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多