【问题标题】:How to push elements in JSON from javascript array如何从 javascript 数组中推送 JSON 中的元素
【发布时间】:2013-09-28 07:22:08
【问题描述】:

我想将 javascript 数组值添加到 JSON 值对象中。另一个元素也替换了我的元素,如收件人、主题、消息。我得到了像这样的 Json:

下面是我的代码。

var BODY = {
    "recipients": {
      "values": [
     ]
    },
   "subject": title,
   "body": message
}

var values = [];
for (var ln = 0; ln < names.length; ln++) {
var item1 = {
    "person": {
            "_path": "/people/"+names[ln],
            },
};
values.push(item1);
}
BODY = JSON.stringify({values: values});
alert(BODY);

【问题讨论】:

  • 你的问题到底是什么,你能改写一下吗?
  • 嘿伙计,如果您忘记了,使用警报可不好。试试 console.log,这是一种更好、更安全的方法。

标签: javascript jquery arrays json


【解决方案1】:

我认为您想从数组中创建对象并将其与旧对象 (BODY.recipients.values) 组合,如果是的话,您可以使用 $.extent(因为您使用的是 jQuery/tagged)方法从数组中准备对象后

var BODY = {
    "recipients": {
        "values": []
    },
    "subject": 'TitleOfSubject',
    "body": 'This is the message body.'
}

var values = [],
names = ['sheikh', 'muhammed', 'Answer', 'Uddin', 'Heera']; // for testing
for (var ln = 0; ln < names.length; ln++) {
    var item1 = {
        "person": { "_path": "/people/"+names[ln] }
    };
    values.push(item1);
}

// Now merge with BODY
$.extend(BODY.recipients.values, values);

DEMO.

【讨论】:

    【解决方案2】:

    如果您想坚持使用填充值数组的方式, 然后你可以像这样分配这个数组:

    BODY.values = values;
    

    在循环之后。

    应该是这样的:

    var BODY = {
        "recipients": {
          "values": [
         ]
        },
       "subject": title,
       "body": message
    }
    
    var values = [];
    for (var ln = 0; ln < names.length; ln++) {
    var item1 = {
        "person": {
                "_path": "/people/"+names[ln],
                },
    };
    values.push(item1);
    }
    BODY.values = values;
    alert(BODY);
    

    一旦您将 JSON.stringify() 作为参数传递给 AJAX 调用,它将很有用。 请记住:BODY 对象中的 values 数组与 var values = [] 不同。 您必须将外部值 [] 分配给 BODY.values。这是 OOP 的优点之一。

    【讨论】:

      【解决方案3】:

      您可以直接访问BODY.values:

      for (var ln = 0; ln < names.length; ln++) {
        var item1 = {
          "person": {
            "_path": "/people/"+names[ln],
          },
        };
      
        BODY.values.push(item1);
      }
      

      【讨论】:

        【解决方案4】:
        var arr = [ 'a', 'b', 'c'];
        arr.push('d'); // insert as last item
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-06
          • 1970-01-01
          • 2017-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-13
          相关资源
          最近更新 更多