使用存储在txt文件中的JSON输入创建下拉菜单

时间:2012-12-07 09:31:03

标签: javascript html json local-files

我正在尝试使用存储在txt文件中的JSON数据创建一个下拉列表。我的主要问题是读取数据(我将从API检索到的数据保存到txt文件中,因为它是大量数据,我希望每次数据都不必向API发出请求,从而节省时间需要)

*作为旁注,不完全确定以JSON形式获取数据是最佳选择。此API支持的其他选项包括:CSV,JSONP,序列化PHP和XML(如果其中一个更容易)

这是JSON数据的形式(在classes.txt中存储为字符串):

{
    "classes": [
        {
            "cat_num": "0001",
            "field": "OEB",
            "number": "363",
            "title": "Plant Diversity and Evolution"
        },
        {
            "cat_num": "0002",
            "term": "FALL",
            "bracketed": false,
            "field": "OEB",
            "number": "364",
            "title": "Ecological Physiology of Microbes"
        }
    ]
}

这是我到目前为止尝试使用此txt文件填充下拉菜单的代码

$(document).ready(function(){  
    var url = "classes.txt";
    $.get(url, function(data) {
    var obj = eval('(' + data + ')');
    $.each(obj, function(i, option){    
        $('#department').append($('<option/>')
                        .attr("value",option.cat_num)
                        .text(option.field));
      );
  );

    });

我也意识到我需要以某种方式确保“字段”在我的下拉菜单中是唯一的(即如果3个字段属于“OEB”字段,我只想让OEB出现在我的下拉菜单中,不是3次)

提前感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

这可以帮助

$(document).ready(function(){
    $.getJSON('classes.txt', function(data) {

      $.each(data, function(i, option){        
            console.log(option.title)
            $('#department').append($('<option/>').attr("value",option.cat_num).text(option.title));
      });
    });
});