阅读JSON值问题

时间:2011-09-07 15:40:41

标签: javascript json dojo

任何人都可以帮助我不能为我的生活理解为什么我不能让以下工作,我只是想从以下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,所以这不是错误。

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

2 个答案:

答案 0 :(得分:0)

似乎对我有用:http://jsfiddle.net/77W58/

data变量必定存在问题。这绝对叫做data吗?它在范围内吗?它是字符串而不是JSON吗?显而易见,但有时这是最简单的事情。

答案 1 :(得分:0)

你的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);
  }

});

Vs的

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);
  }

});