javascript - 使用 Jquery $.ajax() 以通用方式访问 json 对象

标签 javascript jquery ajax json jquery-ui

我正在使用 jqueryui 自动完成功能,想知道是否有一种通用方法可以使用 $.ajax() 访问 Json 对象项。在下面的示例中,文本/值对是 item.Title 和 item.AlbumId,它工作正常。但我想知道是否有办法像 item[0]、item[1] 一样访问它。我尝试过,但不起作用。

    // jqueryui autocomplete configuration
    $(element).autocomplete({
                   minLength: minimumTextLength, 
                   source: function (req, response) {    

                       // call $.ajax()
                       $.ajax({
                           url: filterUrl,
                           type: "POST",
                           dataType: "json",
                           data: { term: textbox.val() },
                           success: function (data) {
                               response($.map(data, function (item) {

                                   return { label: item.Title, value: item.AlbumId }; 
                               }));
                           }
                       });

                   }
               }); //  end of autocomplete()

最佳答案

您可以使用 Object.keys 间接执行此操作。这样你就可以引用item[keys[index]]:

response($.map(data, function (item) {
    var keys = Object.keys(item);
    return { label: item[keys[0]], value: item[keys[1]] }; 
}));

请注意,Object.keys 是 only supported by modern browsers (IE9+)。尽管一如既往,您可以 polyfill如果需要的话。

关于javascript - 使用 Jquery $.ajax() 以通用方式访问 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529620/

相关文章:

javascript - 如何使用 document.form_name.element_name 变量

javascript - 如何通过jquery读取span内的控件id和标题

jquery - 如何从动态创建的输入jquery获取值

jquery - 保持滚动条在数据表中可见

ruby-on-rails - 使用 :remote => true with hover event

javascript - 联系我们表单 - 单击按钮时显示

javascript - 根据嵌套值显示嵌套数组

jquery.Tokeninput 在 Rails 3.0.9 中具有动态嵌套表单

javascript - 如果调用 revokeObjectURL,Blob 图像将不会在 Chrome 中显示

jquery - 良好的 DRY 方法来渲染和 AJAX 更新页面