2012-02-03 49 views
3

我有一個非常大的JSON,如:匹配2 JSON對象

raw_obj= {"001" : {....}, "002" : {....}}; 

和我這是剛剛從服務器返回一個又一個JSON對象:

search_result = {["001", "005", "123"]}; 

我要像做

$.each(search_result, function(i,val){ 
alert(raw_obj.search_result[i]); 
}); 

這可能嗎?我不想循環這兩個對象,因爲在實際中,在「raw_json」中將會有大約2000個元素。這意味着最糟糕的情況是每個查詢循環2000x2000次。

+1

*您要如何匹配這兩個對象?比賽的標準是什麼? – 2012-02-03 09:47:17

+0

'{[「001」],[「005」],[「123」]}'那*是什麼*?你確定這是從服務器返回? – dfsq 2012-02-03 09:49:00

+2

search_result不是一個有效的對象。 – xdazz 2012-02-03 09:50:38

回答

1
var raw_obj= {"001" : {'...'}, "002" : {'...'}}; 
var search_results = ["001", "005", "123"]; // just an array 

$.each(search_results, function(i, result) { 
    alert(raw_obj[result]); 
}); 

搜索結果是一個數組(即列表),而不是一個對象(即map),所以語法應該如上修改。如果您無法控制服務器響應,請使用字符串分析來構建新陣列。