如何使用Javascript向JSON对象添加元素

时间:2014-12-06 17:54:12

标签: javascript json

所以说我有一个像这样的JSON对象:

{"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI"}

创建时我无法修改它。但我想让它看起来像这样:

{"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI", checked: true}

那我怎么用javascript来做呢?

2 个答案:

答案 0 :(得分:4)

在JavaScript的上下文中,没有“JSON对象”这样的东西。您所拥有的是 JavaScript 对象。 JSON是一种数据交换格式,当然是从JavaScript语法派生而来的,但在JavaScript中,对象就是一个对象。要添加属性,请执行以下操作:

var object = {"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI"};

object.checked = true;

现在,如果你真正获得的是一个包含JSON序列化对象的字符串,那么要做的是反序列化,添加属性,然后再次序列化。

答案 1 :(得分:1)

根据您目前的问题构建方式:

> myJson = {"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI"}
Object {name: "asdf", quantity: "3", _id: "v4njTN7V2X10FbRI"}
> myJson.checked = true;
true
> myJson
Object {name: "asdf", quantity: "3", _id: "v4njTN7V2X10FbRI", checked: true}

但我敢打赌你可能必须先解码并重新编码:

JSON.parse(myJson)
JSON.stringify(myJson)

整个事情可能看起来像

// get json and decode    
myJson = JSON.parse(response);
// add data
myJson.checked = true;
// send new json back
$.post('/someurl/', JSON.stringify(myJson));