javascript - 使用 jQuery 和 AJAX 从 JSON 文件加载数据

标签 javascript jquery html ajax json

我目前正在在线学习一些 AJAX 和 JSON,有人可以告诉我我的代码有什么问题吗?我正在尝试根据单击的按钮和类别在网页上加载项目。

这是JSON文件内容

[
item: [
    {
        title: "Proyecto 1",
        description: "Este proyecto fue realizado para la empresa X usando la tectnologia Y.",
        image: "img/proyecto1.jpg",
        category: "web"
    },
    {
        title: "Proyecto 2",
        description: "Este proyecto fue realizado para la empresa X usando los programas X y Y.",
        image: "img/proyecto2.jpg",
        category: "design"
    },
    {
        title: "Proyecto 3",
        description: "El siguiente video fue grabado para la empresa X usando la camara Y.",
        image: "img/proyecto3.jpg",
        category: "video"
    }
]
]

这是我当前使用的 jQuery 代码。

$('.projectbutton').click(function(){
$('.projectbutton').removeClass('active');
$(this).addClass('active');
var projectcategory = $(this).attr('project');
alert(projectcategory);

$.getJSON("test.json", function(response) {
    var projectHTML = '<div class="project">';

    $.each(response, function(i, project) {
        if (project.category == projectcategory) {
            projectHTML += '<img src=' + project.image + '/>';
            projectHTML += '<div class="projectdescription"><h1>' + project.title;
            projectHTML += '</h1><p>' + project.description + '</p>';
            projectHTML += '<img src=' + project.image + '/></div>';
        }
    }); //end each

    projectHTML += '</div>';
    $('#projectcontainer').html(projectHTML);
}); // end getJSON
}); // end click

我还尝试了 $.ajax 函数!

最佳答案

您的 JSON 无效。如果您想要拥有属性(例如 item),您需要将其放入 JSON 对象文字中:

{
    "item": [
        {
            "title": "Proyecto 1",
            "description": "Este proyecto fue realizado para la empresa X usando la tectnologia Y.",
            "image": "img/proyecto1.jpg",
            "category": "web"
        },
        .
        .
        .
    ]
}

请注意大括号 ({}),而不是中括号 ([])。

<小时/>

更新1:charlietfl提到的,您还需要将属性名称放在引号内。 (我已经更新了代码片段以反射(reflect)这一点。)

更新2:您应该使用JSON ValidatorJSONLint在尝试用 JavaScript 解析 JSON 之前验证您的 JSON 并确保它是有效的。

关于javascript - 使用 jQuery 和 AJAX 从 JSON 文件加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30157228/

相关文章:

javascript - 我如何使用 html 和 javascript 制作一种计算器?

javascript - 从动态生成的表中删除行

javascript - 成语描述效果的可能性

jquery - 在刷新完成之前,调整浏览器窗口大小不会激活 jQuery 事件

jquery - 使用 AJAX 插入后在 Select2 中设置数据

javascript - 像图像一样拖放 Canvas

javascript - 未捕获的类型错误 : Cannot set property 'width' of null

javascript - 从控制台获取数据

jquery - 如何将外部样式表和 javascript 导入 iframe

html - Bootstrap 模态形式太丑了