2012-09-17 3 views
2

객체 배열이 있습니다 (JSONized). 다음과 같은 것 :Json 객체에서 요소를 검색 중입니다.

popUpList = [{ 
    "id":1, 
    "Name":"My Pop Up", 
    "VideoUrl":"www.xyz.com/pqr", 
    "AddToBasketUrl":"www.abc.com?addtoBaketid=1", 
    "addedToBasket": true 
}, 
{ 
    "id":2, 
    "Name":"My 2nd Pop Up", 
    "VideoUrl":"www.xyz.com/mno", 
    "AddToBasketUrl":"www.abc.com?addtoBaketid=2", 
    "addedToBasket": false 
}] 

내 상황은 팝업 또는 메인 페이지에서 클립을 추가 할 수 있습니다. 그래서, 뭔가가 페이지에서 바구니에 추가되면 JSON 개체를 편집해야합니다.

$ .inArray() 및 유사한 방법을 사용해 보았습니다. 나는 그것을 올바른 방법으로하지 않거나 뭔가를 놓치고 있다고 생각한다. 또는이 JSON 개체에 대해 작동하지 않을 수 있으며 모든 개체를 반복해야합니다.

도움이 될 것입니다.

vat id = "1"; 

    // this given example wont work for you bec. of your structure 
    // but its all about the idea. 

    var objectOne = yourJsonObject[id]; 

    // You can also append them 
    var myValue = yourJsonObject.address.zip; 

를 그리고 가져온 첫 번째 개체의 다른 항목에 비슷한 :

답변

0

Array.indexOf (내용 : $.inArray)은 검색 할 요소가 필요하며 색인을 반환합니다. 당신은 당신이 전에 모르는 요소를 검색해야하는 경우

, 수동 (밑줄 같은 libs와 헬퍼를) 루프해야합니다

var idToSearchFor = …; 
for (var i=0; i<popUpList.length; i++) 
    if (popUpList[i].id == idToSearchFor) { 
     // do something 
    } 

를 더 빠르게 액세스 할 수있는 색인을 작성하려면 팝업도 할 수 있습니다. 또한 모호 (ID 당 하나 개의 요소)되는 장점이 있습니다

var popUpsById = {}; 
for (var i=0; i<popUpList.length; i++) 
    popUpsById[popUpList[i].id] = popUpList[i]; 

if (idToSearchFor in popUpsById) 
    // do something with popUpsById[idToSearchFor] 
else 
    // create one? 
+0

덕분에 많은 동료를. issue.function을 해결하도록 관리 popUpVideoIndex (clipBinItemId) { var itemIndex = -1; $ .each (popUpVideoList 함수 (I, V) { (v.ClipId == clipBinItemId) { itemIndex라는 = 1의 경우, itemIndex라는 창; }}); itemIndex 반환; } 전체 루프를 처리하지 않고 조건과 일치 할 때까지 반복합니다. 내 JSOn 객체는 작지는 않지만 지금은 제대로 작동합니다. 도와 줘서 고마워. :) 건배. – Alok

0

난 당신이 명시 적으로 검색, 사용하여 객체의 각 값에 액세스 할 수 있습니다 원하는 것을 아주 확실하지 않다.

$.each(popUpList, function(i, v) { 
    var entryYouWantToFind = "addedToBasket"; 
     if(v[entryYouWantToFind]) 
     { 
      // do your stuff here. 
     } 
    } 
}); 

내가 당신에게 힌트를 줄 수있는 희망 :

그 동안 나는 그렇게 보일 것이다 맞춤 검색 기능을 만들 것입니다.

관련 문제