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

时间:2010-08-04 23:13:55

标签: 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数组。

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

2 个答案:

答案 0 :(得分:1)

jQuery的 makeArray 非常适合这一点 http://api.jquery.com/jQuery.makeArray/

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

答案 1 :(得分:0)

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

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

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