2012-12-05 64 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。如何在正則表達式中替換變量 –