【问题标题】:How do I 'query' JSON object with jQuery?如何使用 jQuery '查询' JSON 对象?
【发布时间】:2017-09-27 13:50:52
【问题描述】:

我正在使用 Jquery 自动完成功能,由于互联网连接不佳,我必须在页面加载本身时加载我的整个列表(我的意思是 Json 对象)。现在我的问题是如何查询该 Json 对象以便我的自动完成功能用户开始在文本框中输入关键字时的过滤器。

$(document).ready(function () {
    $("#InsuranceCompanyDisplayName").autocomplete({
        minLength: 2,
        source: function (request, response) {
            var data = $('#InsuranceCompanyjson').text();
            response($.map(data, function (item) {
                return {
                    value: item.InsuranceCompanyDisplay,
                    id: item.InsuranceCompanyId
                }
            }))
        },

    });

});

在这里 (var data = $('#InsuranceCompanyjson').text();) 我从 Html 页面获取我的列表并传递给 Jquery Autocomplete。我知道在请求对象上我将获得获取用户输入的术语,但是我如何使用该输入并查询该 Json 对象,就像我们在数据库中使用 LIKE 关键字一样。

【问题讨论】:

  • 您是在专门寻找 jQuery 吗?
  • 是的,但如果有其他选项可用,那么我想知道。谢谢

标签: jquery json autocomplete


【解决方案1】:

假设您在#InsuranceCompanyjson 元素中将格式正确的JSON 存储为文本,您需要在javascript 中使用之前将其解析回JS 对象:

var data = JSON.parse($('#InsuranceCompanyjson').text());

【讨论】:

  • 谢谢,我试过了,也验证了我的 Json 字符串,但还是不行。
  • 我试图提醒 var data =JSON.parse($('#InsuranceCompanyjson').text());但是在提醒我的功能停止工作并且在提醒我得到正确的 josn 输出之后,
  • 这是“无效的'in'操作数obj”
  • 我解决了这个问题,但我仍然想根据用户输入过滤该选项,正如我在问题中使用 request.term 描述的那样,我将获得用户输入,然后我想过滤我的列表基于那。要解决上述问题,我们必须在您的答案中再进一步,即 var Jstring = eval('(' + $('#InsuranceCompanyjson').text() + ')'); var data = JSON.parse(Jstring);
  • 如果您需要进行 eval 步骤(这是个坏主意),这意味着您一开始没有提供正确的 JSON。将 JSON 写入#InsuranceCompanyjson,您不需要额外的步骤。在任何情况下,而不是 eval,使用两个 JSON.parse。
猜你喜欢
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多