2013-12-23 5 views
0
var json = { 
"color" : { 
    "off-white" : { 
     "inactive" : 0, 
     "instock" : 5, 
     "prestock" : 49 
    }, 
    "red" : { 
     "prestock" : 50, 
     "instock" : 10, 
     "inactive" : 0 
    } 
    } 
}; 

내가하고 "빨간색"모든 하위 문서 "흰색 떨어져"얻을 수javascript와 swig에서 동일한 출력을 얻는 방법은 무엇입니까? 자바 스크립트에서

for (var col in json.color) { 
     result += col + " = " + JSON.stringify(json.color[col].prestock)+ "\n"; 
    } 

을합니다.

나는 똑같은 일을했지만 동일한 출력을 내주지는 못합니다. 그 밖의 무엇을 할 수 있습니까?

는의 출력을 얻을 수 있습니다 "빨간색" "오프 화이트"내가

{% for col in Object.keys(json.color) %} 

을 가지고 있지만 난 하위 문서에 액세스 할 수 없습니다.

나는

{% for col in json.color %} 
<li>{{Object.keys(col)}}</li> 

내가 "미색"

  • 을받을 경우에, "빨간색"내가 좋아하는, 따로 필요
  • :

  • 오프 화이트
  • 빨간색
  • 감사합니다. 메리 크리스마스, 해피 뉴가

    자바 스크립트에서

    답변

    1

    , 당신은 Object.keys를 사용하지 않고 키와 값을 모두 얻을 수 있습니다 : 당신이 자바 스크립트 예제를 요청하고 같은 일을 주어야한다

    {% for key, val in json.color %} 
        <li>{{ key }} = {{ val.prestock }}</li> 
    {% endfor %} 
    

    합니다.

    +0

    Perfect! 고맙습니다! – wisleans

    0

    당신은 당신이 원 있도록이 배열을 반환하지 않습니다 당신에게

    { 
        "inactive" : 0, 
        "instock" : 5, 
        "prestock" : 49 
    } 
    
    // check alert(JSON.stringify(json.color.off-white)); 
    

    같은 객체를 줄 것이다 //

    json.color.off-white OR json['color']['off-white'] 
    

    처럼해야 그것을 통해 반복 할 수 없습니다.

    추가로 그래서 별도로 난 당신이 같은 것을 할 필요가 있다고 생각을 표시

    +0

    감사하지만 내가 자바 스크립트로 할 수있는 것을 볼 수 있듯이, 나는 같은 결과를 가져야한다. – wisleans

    0

    json.color.off-white.inactive 같은 개체에 액세스하여 inactive의 값을 얻을 수 있습니다 :

    {% for key in Object.keys(json.color) %} 
        <li>{{ key }},{{json["color"][key]["prestock"]}}</li> 
    {% endfor %} 
    

    죄송합니다, 나는 당신이 이미 색이 있다고 가정 열쇠. 이제 코드를 업데이트하고, 희망이 작동합니다. 꿀꺽 꿀꺽에서

    +0

    하지만 "off-white"또는 "red"가 반환되지 않지만 "prestock", "instock"및 "inactive"에 대한 액세스는 – wisleans