如何在 Javascript 中访问此 JSON 数据

How do I access this JSON data in Javascript?

本文关键字:JSON 数据 访问 Javascript      更新时间:2023-09-26
{"0":
    {"id":"276","course":"92","name":"Tutorial - Compound Measures",
    "activitylink":"2490","available":"1331231400","deadline":"1331235000"},
 "1":
    "example@gmail.com","reference":"example@gmail.com"}

我正在尝试在jQuery/Javascript中访问它,但我无法访问。这是我的jQuery:

$('#lessonSelect').live('change', function()
{
    $.getJSON('?ajax=true&lid='+$('#lessonSelect').val(), function(data)
    {     
        var len = data.length;      
        var lessonDialog = "";//initialise
        var launchLessonDiv = '<a href="' + data.reference + '">Launch Lesson</a>';
        for (var i = 0; i< len; i++)
        {
            lessonDialog += '<p>' + data[i].name + '</p>'; //get lesson name
        }
        $('#lessonDialog').html(lessonDialog); //insert lesson name into dialog
        $('#launchLessonDiv').html(launchLessonDiv);
    });   
});

这基本上是针对选择列表的。每次用户选择某些内容时,页面上的链接和其他内容都会更改。这些东西在页面首次加载时有效,但是当我开始在选择列表中选择内容时,课程对话框出现空白,里面没有任何内容。

将带有数字键的对象转换为 true 数组:

$.getJSON('?ajax=true&lid='+$('#lessonSelect').val(), function(data) {   
    data = Array.prototype.slice.call(data);

当前方法失败,因为{ ... }会导致创建对象而不是数组。对象的 length 属性是 undefined ,所以循环永远不会开始:

for (var i=0; i<undefined; i++) ; // <-- 0 < undefined is always false