所以说我有一个像这样的JSON对象:
{"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI"}
创建时我无法修改它。但我想让它看起来像这样:
{"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI", checked: true}
那我怎么用javascript来做呢?
答案 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));