如何从javascript数组推送JSON中的元素

时间:2013-09-28 07:22:08

标签: javascript jquery arrays json

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

enter image description here

以下是我的代码。

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);

4 个答案:

答案 0 :(得分:12)

我认为您希望从数组中创建对象并将其与旧对象(BODY.recipients.values)结合使用,如果是,那么您可以使用$.extent(因为您正在使用{从数组

中准备对象后的{1}} / tagged)方法
jQuery

DEMO.

答案 1 :(得分:0)

您可以直接访问BODY.values

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

  BODY.values.push(item1);
}

答案 2 :(得分:0)

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

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);
一旦将其作为AJAX调用的参数传递,

JSON.stringify()将非常有用。 请记住:BODY对象中的values数组与var values = []不同。 您必须将外部值[]分配给BODY.values。这是关于OOP的好事之一。

答案 3 :(得分:0)

var arr = [ 'a', 'b', 'c'];
arr.push('d'); // insert as last item