我正在玩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