如何使用javascript/jquery读取json中的单个对象和数组对象
问题描述:
我写了json读取器来读取数据&可以正常使用以下数据。如何使用javascript/jquery读取json中的单个对象和数组对象
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
但是当JSON返回从API等
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem":
{"value": "Close", "onclick": "CloseDoc()"}
}
}}
单个菜单项菜单项是一个对象,而不是阵列。 因此,我的json阅读器无法阅读,因为我正在通过循环读入menuitem的数组。
解决方案非常感谢。 这是怎么处理的其他主要网站?
答
jQuery的makeArray是完美的。
http://api.jquery.com/jQuery.makeArray/
这需要什么,并返回一个数组,所以如果它已经将其传递的,是一个数组,但如果它是一个标量它使一个单值排列出来。然后你可以迭代结果。
答
假设你想要阅读的菜单项的“价值”,你可以使用
if(menuitem.value!=undefined)//this will return undefined if the menu item is an array
那么其他的就是用menuitem[0].value
如果上述条件为假。 希望这可以在一定程度上解决您的问题。
阅读json之前我可以检查menuitem数组,如果不是我可以将其转换为数组吗?请建议我以快速方式转换的方法 在此先感谢! – jaan 2010-08-04 23:45:52
更改解析器为读者 – jaan 2010-08-04 23:53:35