如何使用jquery搜索json数据

时间:2016-06-25 20:14:55

标签: javascript jquery json

我想在每个keyup上搜索json数据。

JSON:

{
 "AB01": {
   "foo": "bar",
   "ID": "A1",
   "PID": "Z09",
    },
  "AB10": {
    "foo10": "bar10",
    "ID": "B10",
    "PID": "Y08",
   },
}

的jQuery

$('input').on('keyup', function(){
  $.getJSON("ABc.json", function(data) {
    var InputVal = $('input').val();
    var myExp = new RegExp(InputVal, "i");

    var results = [];

    $.each(data, function(key, obj){
        if (obj.foo.search(new RegExp(InputVal,"i")) != -1) {
            results.push(obj);
        }       
    });

    for(var i=0; i< $(results).length; i++)
    {
     console.log(JSON.stringify(results[i])); 
    }
  });
});

HTML

<input type="text" name="abc">


现在我希望json中的input string\char on every keyup匹配数据不是fooID,而是所有键和值。


我找不到如何解决这个问题,感谢任何帮助。
如果你想要的任何东西让我知道:)


提前致谢。

1 个答案:

答案 0 :(得分:0)

您正在尝试对对象进行字符串比较。

您需要对这些对象的每个属性进行内部迭代。

var basepath="http://192.168.43.88:3000";// Put your servers ip address here. if connecting to local server use 'http' and if to remote server use 'https'

$(document).ready(function(){


$("#mybtn").click(function(e){

        $.ajax({
            type:"GET",
            url:basepath+"/bots",
            success:function(data,status,request){
                //success action
            },
            error: function(error){
                //failuer action
            },
            timeout:5000
        });

});

您可以使用其他数组方法,例如filter(),但我保留的格式与当前代码的格式相同

另请注意,您应该提前加载数据,这样您每次都不需要请求