我正在玩1.4.1 jquery.parseJSON方法,看起來它將很適合我的項目,它迭代了一個JSON字符串從C#加載。但是,被加載的JSON是一個實體對象,它們在它們內部具有通用集合,因此在JSON字符串中創建了相同的名稱。例如:jQuery.parseJSON不解析如果JSON字符串具有相同名稱的項目
這工作,因爲那裏有唯一的項目有一個名字都將自己:
var obj = jQuery.parseJSON('{\"ItemID\":1014470}');
alert(obj.ItemID);
這工作,但只獲得在JSON字符串中的最後一個項目:
var obj = jQuery.parseJSON('{\"ItemID\":1014470,\"ItemID\":134564879898798}');
alert(obj.ItemID);
所以我想將JSON字符串分隔如下將解決它:
var obj = jQuery.parseJSON('{\"ItemID\":1014470},{\"ItemID\":134564879898798}');
哪個當然沒有什麼
我在想,你可以做這樣的事情:
jQuery.each(obj, function(){
// get each ItemID ???
});
有沒有更好的辦法做這樣的事情?
目前我們使用這些醜陋的JavaScript數組和很多循環方法,我希望jQuery可以提供一種更清晰的遍歷JSON字符串的方法。
我不是JSON Guru,但那是輸出有效嗎?它必須這樣嗎?修復輸出不是更容易嗎? (如果它壞了,就是這樣) – 2010-06-30 23:04:15
啊,我糾正了:「對象內的名字應該是唯一的。」http://tools.ietf.org/html/rfc4627 – 2010-06-30 23:06:37
@Pekka:「SHOULD」顯然意味着什麼除非名稱是唯一的,否則不能使用常規解析器來解析JSON。如果你讓一個Javscript引擎解析它,它也會扔掉除最後一次發生的所有東西。 – Guffa 2010-06-30 23:17:42