如何使用javascript / jquery读取json中的单个对象和对象数组

我写了json阅读器来读取数据并使用以下数据正常工作。

{"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }} 

但是当json从api返回单个menuitem时

 {"menu": { "id": "file", "value": "File", "popup": { "menuitem": {"value": "Close", "onclick": "CloseDoc()"} } }} 

menuitem是一个对象而不是一个数组。 所以,我的json阅读器无法读取,因为我通过循环读取了menuitem数组。

非常感谢解决方案。 如何处理其他主要网站?

jQuery的makeArray非常适合这种情况。
http://api.jquery.com/jQuery.makeArray/

它会占用任何东西并返回一个数组,所以如果它已经是一个数组,它会按原样传递它,但是如果它是一个标量,它就会产生一个单值数组。 然后你可以迭代结果。

假设您想要阅读menuitem的’value’,您可以使用

 if(menuitem.value!=undefined)//this will return undefined if the menu item is an array 

如果上述条件为假,则另一件事是使用menuitem[0].value 。 希望这能在一定程度上解决您的问题。