如何将 JSON 对象内的 JSON 数组传递给 jQuery 自动完成

Posted

技术标签:

【中文标题】如何将 JSON 对象内的 JSON 数组传递给 jQuery 自动完成【英文标题】:How to pass JSON Array inside JSON object to jQuery autocomplete 【发布时间】:2015-05-10 05:07:13 【问题描述】:

我正在使用 jQuery 自动完成功能通过 Ajax 调用接收特定数据。我从 Ajax 调用收到的数据是一个 JSON 对象,其中包含一个 JSON 数组。我需要将此 json 数组的每个结果显示到自动完成搜索结果中。格式将是这样的:


    "returnCode":"success",
    "status":"success", 
    "searchResults" :["val":"123","val":"456","val":"789"]
   

现在我需要在自动完成下拉菜单中显示 123 456 和 789。在 formatItem 和 formatResult 中尝试了一些代码,但似乎没有达到目的。

formatItem: function(row,i,max) 
var returnObject = eval("(" + row + ")");
var searchResults = returnObject.searchResults;
if(searchResults.length>0)
    for(i=1; i<searchResults.length; i++)
        // What to do here?
    

【问题讨论】:

【参考方案1】:

试试

var cache = ;
elem.autocomplete(
    minLength: 2,
    source: function(request, response) 
      var term = request.term;
      if (!!cache[term]) 
        response(cache[term][0]);
        return
      ;
      cache[term] = [];
      $.getJSON("/path/to/json/")
      .then(function success(data) 
          var res = $.map(data.searchResults, function(val) 
            return val.val
          );          
          cache[term].push(res);
          response(res)
        , function error(jqxhr, textStatus, errorThrown) 
             console.log(textStatus, errorThrown) // log `$.ajax` errors
      )
    
);

jsfiddle http://jsfiddle.net/guest271314/wr1wg5df/

【讨论】:

我曾尝试使用“源”来进行 ajax 调用。虽然不知何故它不起作用。永远不会进行 ajax 调用。 在帖子中尝试过模式?可以在原始帖子中包含$.ajax().autocomplete() 吗? console 记录了什么? 什么都没有。似乎它根本不支持“源”的东西 可以在原帖中包含$.ajax().autocomplete()js吗,创建stacksn-ps blog.***.com/2014/09/…,jsfiddle.net来演示? 所以基本上当我在自动完成中调用提供 url 参数的 java 方法时它可以工作 - $(modal).find(".seach").autocomplete("searchListItems.do",

以上是关于如何将 JSON 对象内的 JSON 数组传递给 jQuery 自动完成的主要内容,如果未能解决你的问题,请参考以下文章

如何将json目录传递给django框架内的模板?

将包含对象数组的 json 传递给 PostgreSQL 函数会引发格式错误的数组文字。意外的数组元素

ajax传递json数组对象

如何将 JSON 数组(或 JSON 数组)传递给 pg 函数以插入到表中?

如何将 Json 数组作为统一字段传递给 WWWform

如何从ajax将多个json数组传递给控制器​​?