【问题标题】:using a variable inside json在 json 中使用变量
【发布时间】:2013-03-20 03:09:23
【问题描述】:

我有一个 json 对象“shopping_cart”,其中还有一个名为“items”的对象。

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

$.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、数量、价格等。

非常感谢。

【问题讨论】:

  • 我们实际上不使用 item_1、item_2 等。我们为此使用了一个数组。

标签: javascript json variables


【解决方案1】:

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

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

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

【讨论】:

  • 我没有添加单个项目。那只是为了描述情况。
  • @bornie 你仍然可以这样做;只需为每个项目使用一行。它也将比 jQuery 的 extend 更快(extend 用于可能已经存在同名项目的情况,并且您想扩充它而不是替换它)。如果您真的想使用extend,请通过此方法创建一个新对象,然后将其传递给extend。
猜你喜欢
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多