是否有用于使用 JSON 数据填充下拉列表的标准 JQuery 工具?

Is there a standard JQuery tool for populating a droplist with JSON data?

我正在寻找类似于下拉列表的 dataTables 插件。通过整个上午寻找一个简单的例子,我知道有一百万种方法可以做到这一点,但我还没有找到像规范方法这样的方法。给定包含数据列表的 JSON,在 JQuery 中用它填充下拉列表的最简单方法是什么?

我们暂时假设此 json 数据来自通过 Spring MVC 控制器方法访问的数据库查询。但实际上,URL 提供的任何 JSON 列表都应该有效。

我已经解决了。首先,Json 和你想象的一样基本:

{"status":"OK",
 "statusDescription":"2 rows returned",
 "payload":{
   "transcribers":[
        {"userId":2,"userName":"jfrost"},
        {"userId":1,"userName":"sjones"}
   ]
  }
}

解决方案none太难了,直到我理解了这个问题,直到那时才头疼。

function loadTranscriberDropdown() 
{
    var transcriberAPI = "oam/transcribers/";
    var count = 0;
    console.log('in loadTranscriberDropdown()');    

    $('#userlist').empty().append('<option value="0">...</option>');
    $.getJSON(transcriberAPI) 
        .done(function( data ) {
            $.each(data.payload.transcribers, function( ID, value ) {
                $('#userlist').append('<option value=' + value.userId + '>' + value.userName + '</option>');
                count = count + 1;
                console.log("loaded " + value.userName);
            });
        })
        .fail(function() {
            console.log( "  error loading transcribers. " );
        })
        .always(function() {
            console.log( count + " transcribers loaded.");
        });

}

令我困惑的是为什么 $.each 行中的内联函数必须采用 function ( key, value ) 形式。提供的 JSON 的每一行都是键值对的一部分并不明显。列表的每个成员似乎都有某种隐含的键,它在列表中的顺序,第一行的键是 1,第二行的键是 2,等等。因此所有数据都在值元素中。

无论如何,我希望这对下一个必须解决此 "simple" 问题的人有用。