将JSON字符串转换为函数参数

时间:2015-03-31 01:40:33

标签: javascript json function object arguments

我有一串javascript对象需要转换为函数参数。

字符串如下所示:

"{ "item1": "foo 1", "item2": "bar 1" }, { "item1": "foo 1", "item2": "bar 2" }"

我可以结束" []"并调用JSON.parse将其转换为有效数组,但这并不能解决我的问题,因为函数需要它们是单独的对象而不是对象数组。

EX:

functionCall({ "item1": "foo 1", "item2": "bar 1" }, { "item1": "foo 1", "item2": "bar 2" });

我永远不会知道这个字符串中有多少个对象,所以我不知道函数应该接受多少个参数。

我希望能够将多个对象添加到一个变量中,如:

var objects = { "item1": "foo 1", "item2": "bar 1" }, { "item1": "foo 1", "item2": "bar 2" }

然后我可以打电话

functionCall(objects);

有没有办法可以完成这样的事情或我可以采取的另一种方法?

2 个答案:

答案 0 :(得分:1)

您可以使用 Function.prototype.apply()

functionCall.apply(window, objects);

(将window替换为您希望具有此功能的范围。)

第二个参数是一个对象数组,所以继续将对象放在一个数组中,然后使用apply

答案 1 :(得分:1)

您可以使用Function.prototype.apply将数组转换为函数参数:

functionCall.apply(null, objects);

初始null参数是函数的this参数;如果您没有调用对象方法,则不需要它,null可以用作占位符。