如何使用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
。 希望这能在一定程度上解决您的问题。