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

如何使用Javascript向JSON对象添加元素,javascript,json,Javascript,Json,假设我有这样一个JSON对象: {"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI"} 当它被创建时,我不能修改它。但我想让它看起来像这样: {"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI", checked: true} 那么如何使用javascript实现这一点呢?在javascript的上下文中,没有“JSON对象”这样的东西。这里有JavaScript对象。JSON是一

假设我有这样一个JSON对象:

{"name":"asdf","quantity":"3","_id":"v4njTN7V2X10FbRI"}
当它被创建时,我不能修改它。但我想让它看起来像这样:

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

那么如何使用javascript实现这一点呢?

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

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

object.checked = true;

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

按照您的问题当前的结构:

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

在JavaScript中,您可以通过阅读关于JS的基本教程来实现这一点,包括JS对象以及如何为它们分配属性。可能重复的不是它的
JSON.parse()
?@Pointy是的。刚刚更新;谢谢您的关注。@torazaburo您真的认为添加关于序列化/反序列化json的附加信息值得投反对票吗?OP询问的是json,因此有理由假设他可能必须在添加完新值后将其序列化。您没有理由认为他在实际应用程序中没有从服务器发送或接收任何内容。@torazaburo than用这种方式处理问题;不要把你的沮丧发泄在那些试图帮助别人的人身上。