在json中使用变量

时间:2013-03-19 19:06:31

标签: javascript json variables

我有一个json对象“shopping_cart”,里面有另一个名为“items”的对象。

一旦用户在购物车上添加了一些新商品,我想更新json对象,所以 我在“items”对象上添加了一个新项。现在的问题是新的项目 添加到“items”对象需要有某种标识符,所以每当用户 添加一个新项目:

$.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

但没有运气,无论我怎样尝试变量都会在所有情况下被解析为字符串。

那么有没有办法通过使用变量动态创建对象?我也需要 这可以用动态变量更新item_name,qty,price等。

非常感谢。

1 个答案:

答案 0 :(得分:2)

由于您只添加了一个项目,因此无需使用jQuery的extend。只需设置属性:

shopping_cart.items["item_"+new_num] = {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""};

[...]内,您可以进行字符串操作。在{...:...}内,你不是。