Javascript 在json中使用变量
我有一个json对象“shopping_cart”,其中还有一个对象叫做“items” 我想在用户在购物车上添加一些新项目后更新json对象,所以 我在“items”对象上添加了一个新项。现在的问题是,新的项目将 添加到“items”对象需要有某种标识符,因此每当用户 添加一个新项目,它将是:Javascript 在json中使用变量,javascript,json,variables,Javascript,Json,Variables,我有一个json对象“shopping_cart”,其中还有一个对象叫做“items” 我想在用户在购物车上添加一些新项目后更新json对象,所以 我在“items”对象上添加了一个新项。现在的问题是,新的项目将 添加到“items”对象需要有某种标识符,因此每当用户 添加一个新项目,它将是: $.extend(shopping_cart.items,{ "item_2":... $.extend(shopping_cart.items,{ "item_3":... 等等 我尝试用变量替换下面
$.extend(shopping_cart.items,{ "item_2":...
$.extend(shopping_cart.items,{ "item_3":...
等等
我尝试用变量替换下面(1)的数字
$.extend(shopping_cart.items,{ "item_1": {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""}});
比如:
var new_num=5
$.extend(shopping_cart.items,{ "item_"+new_num: {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""}});
因此,它转化为:
$.extend(shopping_cart.items,{ item_5
但是运气不好,不管我以何种方式尝试,变量在任何情况下都被解析为字符串
那么,有没有办法通过使用变量来动态创建对象呢?我还需要
此选项用于使用动态变量更新项目名称、数量、价格等
非常感谢。因为您只添加了一项,所以不需要使用jQuery的
extend
。只需设置属性:
shopping_cart.items["item_"+new_num] = {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""};
在
[…]
中,您可以执行字符串操作。在{…:…}
中,您不是。我没有添加任何项目。“那只是描述情况而已。”“bornie,你仍然可以这样做;只需为每个项目使用一行。它也将比jQuery的extend
更快(extend
适用于可能已经存在同名项的情况,您希望对其进行扩充而不是替换)。如果你真的想使用extend,用这个方法创建一个新的对象,然后把它传递给extend。实际上我们不使用item_1、item_2等。我们使用数组来实现这个。