2012-12-05 94 views
0

我正在使用asp.net mvc。我有一个json响应,如如何使用jQuery过滤json数据

[{"firstname":"xxx","lastname":"yyy","name":"zzz"}, 
{"firstname":"aaa","lastname":"bbb","name":"ccc"}, 
{"firstname":"zzz","lastname":"eee","name":"ddd"}, 
...] 

现在我想过滤上面的json响应按名称开始搜索条件。我已经遵循以下方式,

var array=[]; 
array = jQuery.grep(jsondata, function (n,i) { return n.name.startsWith(searchstring); }); 

但我总是得到空阵列。请指导我。

+0

你会更好地过滤数据服务器端,在您的搜索查询数据传递的JSON请求的一部分..也许,我想这取决于 – musefan

回答

1

可能jQuery.parseJSON()将有所帮助。

var data = $.parseJSON(<pass server json here>)[0], // 0 is used to match your example 
    ret = [], 
    rg = new RegExp('^' + search); 

for (var i in data){ 
    if (rg.test(data[i].name)){ // '^' symbol is required. 
     ret.push(data[i]); 
    } 
} 
+0

与条件不工作在这里开始你的用户界面的需求。有没有其他办法呢? –

+0

更改了匹配功能。应该管用。 –

+0

其实我有一个变量'名称'在那个搜索字符串将被存储。 'if(/ ^(search)/。test(data [i] .name)'condition for working for me。如何在正则表达式中替换变量 –