2010-07-28 85 views
0

此代碼的工作:我可以使用變量傳遞json字符串嗎?

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

此代碼不起作用:

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

問題是,我怎樣才能使它發揮作用?

+2

嘗試刪除周圍的JSON引號時,分配給數據。 – 2010-07-28 17:12:02

回答

2

您的數據不是Javascript對象,而是一個字符串,您可以通過eval將其轉換爲對象。

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

但eval被認爲是危險的,所以更好地解析字符串爲JSON例如

data = JSON.parse(data) 

對於JSON lib中您可以使用json2

+0

我能夠使用JSON庫解決我的問題。謝謝。 – 2010-07-28 17:30:20

2

這不是JSON,它是一個JavaScript對象。

var data = { category: 1 }; 

如果你有一個字符串,你必須convert it to a object

並注意您的字符串不是有效的JSON,請參閱鏈接瞭解更多詳細信息。

0

您是否試過在數據上使用eval()

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

取出引號,加載函數期待一個對象,而不是一個字符串。

相關問題