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

时间:2013-10-22 22:37:19

标签: javascript jquery ajax json jquery-ui

我正在使用jqueryui自动完成,并想知道是否有使用$ .ajax()访问Json对象项的通用方法。在下面的示例中,text / value对是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()

1 个答案:

答案 0 :(得分:0)

您可以使用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