2012-12-05 3 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

당신의 UI 요구 사항에 따라 달라집니다 것 같아요. 거기에 다른 방법이 있습니까? –

+0

일치하는 기능이 변경되었습니다. 일해야한다. –

+0

사실 나는 그 검색 문자열에 변수 'name'이 저장됩니다. 'if (/^(search) /. test (data [i] .name)'조건이 나를 위해 일하는 것. serach 대신 정규 표현식에 varible을 두는 법 –

관련 문제