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

如果我这样做,在 Javascript 中

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

我可以获得“off-white”和“red”以及所有子文档。

我做了同样的事情,但它不会给我相同的输出。我还可以做些什么?

要获得“灰白色”和“红色”的输出,我必须

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

但我无法访问子文档。

如果我做

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

我明白了

  • “灰白色”、“红色”
  • 我需要单独使用它们,例如:

  • 米白色
  • 红色的
  • 谢谢!圣诞快乐和新年快乐

    4

    3 回答 3

    2

    在 swig 中,您可以在不使用的情况下同时获取键和值Object.keys

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

    这应该会给您在 JavaScript 示例中所要求的相同内容。

    于 2013-12-24T14:17:31.957 回答
    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));
    

    这不会返回数组,因此您将无法循环遍历它。

    进一步你可以inactive通过访问像这样的对象 来获得价值json.color.off-white.inactive

    于 2013-12-23T17:12:03.557 回答
    0

    因此,要单独显示它们,我认为您需要执行以下操作:

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

    抱歉,我想你已经有了颜色键。现在我更新代码,希望有效。

    于 2013-12-23T17:31:30.850 回答