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

在Javascript中,如果我做如何用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 %} 
    

    這應該給你你要求在JavaScript的例子同樣的事情。

    +0

    完美!謝謝! – wisleans

    0

    在JavaScript中,你應該做的像

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

    //它會給你喜歡

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

    的對象,所以你贏了這將不會返回數組無法循環。

    進一步您可以通過訪問像json.color.off-white.inactive

    +0

    謝謝,但你可以看到我可以用Javascript做到這一點,我需要與swig相同的輸出。 – wisleans

    0

    對象獲得的inactive的值,所以單獨顯示出來,我認爲你需要做這樣的事情:

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

    對不起,我想你已經有了顏色鍵。現在我更新代碼,希望工程。

    +0

    但這並不返回「灰白色」或「紅色」,而是訪問「prestock」,「instock」和「inactive」 – wisleans

    相關問題