我可以使用变量传递json字符串吗?

时间:2010-07-28 17:10:23

标签: javascript jquery

此代码有效:

$(this).load($('.pageloadlabel', this).attr('href'), {category: 1});

此代码不起作用:

var data = '{category: 1}';
$(this).load($('.pageloadlabel', this).attr('href'), data);

问题是,我怎样才能使它发挥作用?

4 个答案:

答案 0 :(得分:2)

这不是JSON,它是一个javascript对象。

var data = { category: 1 };

如果您有字符串,则必须convert it to a object

请注意,您的字符串不是有效的JSON,请参阅该链接以获取更多详细信息。

答案 1 :(得分:2)

取出引号,load函数期待一个对象,而不是一个字符串。

答案 2 :(得分:2)

您的数据不是Javascript对象而是字符串,您可以通过eval将其转换为对象,例如

data = eval('(' + data + ')');

但是eval被认为是危险的,所以最好将字符串解析为JSON,例如

data = JSON.parse(data)

对于JSON lib,您可以使用json2

答案 3 :(得分:0)

您是否尝试在数据上使用eval()

var data = '{category: 1}';
$(this).load($('.pageloadlabel', this).attr('href'), eval(data));