我使用JSON數據,並通過jQuery的迭代,並顯示我的結果...在jquery中解析json的最有效方法是什麼?
使用firefox
var jsonObj = JSON.parse(HfJsonValue);
作品,但不是在IE6
....
HfjsonValue
是從返回JSON字符串我aspx code behind page
...所以我不使用AJAX ...任何建議,讓我的JSON解析更好,跨瀏覽器的一個...
我使用JSON數據,並通過jQuery的迭代,並顯示我的結果...在jquery中解析json的最有效方法是什麼?
使用firefox
var jsonObj = JSON.parse(HfJsonValue);
作品,但不是在IE6
....
HfjsonValue
是從返回JSON字符串我aspx code behind page
...所以我不使用AJAX ...任何建議,讓我的JSON解析更好,跨瀏覽器的一個...
這大概:http://api.jquery.com/jQuery.parseJSON/
var obj = jQuery.parseJSON('{"name":"John"}');
alert(obj.name === "John");
......呃當然,這只是如果你想使用jQuery 1.4。 :)我認爲JSON內置功能對於實際嘗試實現標準的瀏覽器是一個相當新的補充。
編輯
正如跟進,你可以通過調用就可以了「EVAL」功能將一個JSON字符串轉換爲JavaScript對象:
var obj = eval('({"name":"John"})');
alert(obj.name === "John");
這應該給予同樣的結果作爲上面的jQuery parseJSON。不同之處在於JavaScript的「eval」函數會運行任何內部代碼,所以如果JSON的源代碼是外部網站或另一個不可信任的源代碼,那麼該源代碼可能會將惡意代碼注入到字符串中,您希望只包含JSON。
我相信有一個新的建議,瀏覽器實現內置的JSON解析,這將強制字符串上的JavaScript對象字面格式,這將提供一個安全的替代「eval」。
編輯2
從未真正使用eval
處理JSON,我錯誤地以爲我的例子會工作。現在已經修復了附加的支架。
@nick that worked ..因爲我只使用jquery ... – 2010-03-26 11:11:49
@nick這是更快... – 2010-03-26 11:21:03
你應該在括號內包括括號:'eval('({「name」:「John」})' );'如果你想要原始速度,'var obj = new Function('return {「name」:「John」}')'會最快。但請注意,jQuery.parseJSON會檢查JSON以確保它是有效的JSON;而不是惡意代碼。 '新功能'和'eval'方法都沒有。我會推薦jQuery.parseJSON。 – Matt 2010-03-26 11:41:01
JSON是JavaScript Object Notation,它不需要在JS中解析。您可以開始將其用作常規對象。 – RaYell 2010-03-26 11:08:07
@RaYell我試了一下......但那並沒有工作 – 2010-03-26 11:09:23
你可能必須首先''eval()'JSON。 – 2010-03-26 11:14:51