假设我有一个以这种方式构建的JSON对象:
var obj = {
"field1": "value1",
"field2": "value2"
};
我有一个不同的对象:
var newObj = {"email": "you@hoo.com"};
如果我想将newObj
的内容注入到obj
中,最终会以这样的方式注入:
{
"field1": "value1",
"field2": "value2"
"to": [{
"email": "you@hoo.com",
"defaultValue": "111" <-- this is always constant
}]
};
怎么办呢?
答案 0 :(得分:1)
当你说JSON时,你暗示它是JSON,而不是javascript对象。 JSON是一个序列化的js对象。你只有一个对象。数组是一个对象。数组对象具有方法Array.prototype.push
。这允许您将单个值推送到数组。要加入另一个方法concat
,它会将数组与另一个数组或值连接起来。
Array.prototype.push(...)
var arr=[1,2];
arr.push(3);
console.log(arr); //outputs: [1, 2, 3]
Array.prototype.concat(...)
var arr=[1,2];
var result=arr.concat([3,4]);
result=result.concat(5);
console.log(result); //outputs: [1, 2, 3, 4, 5]
答案 1 :(得分:0)
obj.to = [];
newObj.defaultValue = "111";
obj.to.push(newObj);
看看是否适用于你。
答案 2 :(得分:0)
你可以试试这个:
obj['to']=newObj;
obj['to']['defaultValue']="111";