Как я могу получить доступ к элементам JSON через JavaScript? - PullRequest
0 голосов
/ 28 июня 2011

Файл JSON, который у меня есть, следующий:

{
  "root": {
    "Quizsize": null,
    "{urn:abc.com/xmlns/mona/page}page": [
      {
        "@xid": "page1623",
        "@title": "Quiz Landing Page",
        "{urn:abc.com/xmlns/mona/page}comment": null,
        "{urn:abc.com/xmlns/mona/page}skills": null,
        "{urn:abc.com/xmlns/mona/page}info": {
          "{urn:abc.com/xmlns/mona/common}property": {
            "@name": "quiz_landing",
            "@value": "true"
          }
        }
      }
    ]
  }
}
}

Я загружаю этот файл JSON, используя:

var jsondata = eval("("+chapterRequest.responseText+")") ;
Root = jsondata.root

Теперь я хочу получить доступ к @xid, который является "page1623 и @имя "quiz_landing". Я не знаю, как это сделать, пожалуйста, помогите.

Спасибо

Ответы [ 2 ]

4 голосов
/ 28 июня 2011

JSON.parse (x) лучше, чем eval (x), для одного. Хотя некоторые браузеры изначально не поддерживают его. Если вы хотите получить доступ к @xid, страница «urn: abc.com/xmlns/mona/page}» указывает на массив, первым элементом которого является объект.

Так что используйте Root ["{urn: abc.com/xmlns/mona/page} page"] [0] ["@ xid"] . Или смешайте скобки и точечные обозначения. Твой выбор, действительно.

1 голос
/ 28 июня 2011

Если ключ не является допустимым идентификатором, вы используете object['key'] вместо object.key, поэтому jsondata.root['{urn:abc.com/xmlns/mona/page}page'][0]['@xid'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...