读取JSON值问题

Reading JSON value problem

本文关键字:问题 JSON 读取      更新时间:2023-09-26

谁能帮助我不能为我的生活理解为什么我不能得到以下工作,我只是试图从以下json检索值:

{
"entities": [
    {
        "id": "84",
        "name": "jonathan",
        "date": "2009-12-12",
        "startTime": "T16:31:04",
        "endTime": "T16:31:04",
        "room": "Room1"
    },
    {
        "id": "87",
        "name": "jonathan",
        "date": "2011-12-12",
        "startTime": "T16:44:03",
        "endTime": "T16:44:03",
        "room": "Room1"
    },
    {
        "id": "90",
        "name": "jonathan",
        "date": "2011-12-12",
        "startTime": "T10:18:38",
        "endTime": "T10:18:38",
        "room": "Room1"
    }
]
}

我已经这样做了一千次了,但无法访问任何值,一直在尝试以下各种变化:

console.log(data.entities[0].id);

请注意,我正在从dojo ajax调用中检索JSON,我能够将整个JSON输出到console,所以这不是错误。

当然,我在做一些愚蠢的学生错误帮助!

它似乎对我来说工作得很好:http://jsfiddle.net/77W58/

这一定是data变量的问题。它一定叫data吗?它在范围内吗?它是字符串而不是JSON?很明显,但有时这是最简单的事情。

您的ajax请求看起来像什么?如果你没有handleAs: 'json'属性,响应将以文本形式返回。在这种情况下,如果您console.log响应,您将看到响应,但它不会被键入为对象。

dojo.xhrPost({
  url: '/something',
  handleAs: 'json',
  load: function(data){
   //this should show up as an Object in the console
   console.log(data);
  }
});

dojo.xhrPost({
  url: '/something',
  //optional, defaults to this property
  handleAs: 'text',
  load: function(data){
   //this should show up as a string in the console
   console.log(data);
  }
});