2014-01-15 2 views
0

json 객체 내에서 4 레벨까지 트래버스 할 수 있습니다. 레벨 중 일부는 정의되지 않고 코드가 깨질 수 있습니다.자바 스크립트에서 JSON 객체 사용 가능 여부 유효성 검사

당신이 필요로하는

productDetail.breadcrumb.levels.push(paramObj.categories.category.category.category.CATEGORYNAME); 
+0

당신이'catch' .. 시도한다 할 수있는 모든 - 일반적으로이 구조를 알아야하지만, 귀하의 데이터 중. –

+0

일부 시간 데이터 구조가 변경 될 수 있습니다. – Elankeeran

답변

1

하지 JQuery와 자바 스크립트의 유효성/체크 JSON 노드는 다음과 같이 그것을 확인하는 방법 다음의 경우

var categoryName = (paramObj.categories 
        && paramObj.categories.category 
        && paramObj.categories.category.category 
        && paramObj.categories.category.category.CATEGORYNAME); 

이 당신에게 카테고리 이름 또는 정의를 줄 것이다 길을 따라 물체가 없습니다. 당좌 기능에 그것을 밖으로

+0

1 회 사용을위한 좋은 솔루션 – chim

0

추상

function myJsonValue(ob, prop) { 
    var propsArray = prop.split('.'); 
    var out = ob; 
    var i; 
    for (i=0; i < propsArray.length; i += 1){ 
     var dis = propsArray[i]; 
     if (!out[dis]) { 
      return undefined; 
     } 
     out = out[dis]; 

    } 
    return out; 
} 

사용법 :

myJsonValue(paramObj, "categories.category.category.category.CATEGORYNAME") 

(Fiddle)

+0

반복 용 배열에 for 루프를 사용하면 안됩니다. – Woody

+0

for는 객체 속성 목록을 반복하는 것을 의미합니다. http://stackoverflow.com/questions/3010840/loop-through-array-in-javascript를 참조하십시오. – Woody

관련 문제