【问题标题】:how to get same outputs with javascript and swig?如何使用 javascript 和 swig 获得相同的输出?
【发布时间】:2014-01-11 21:52:17
【问题描述】:
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”以及所有子文档。

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

要获得“off-white”和“red”的输出,我必须

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

但我无法访问子文档。

如果我这样做

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

我明白了

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

  • 灰白色
  • 红色
  • 谢谢! 圣诞快乐,新年快乐

    【问题讨论】:

      标签: javascript node.js for-in-loop swig-template


      【解决方案1】:

      在 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这样的对象来获得inactive的值

      【讨论】:

      • 谢谢,但正如你所见,我可以用 Javascript 做到这一点,我需要与 swig 有相同的输出。
      【解决方案2】:

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

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

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

      【讨论】:

      • 但这不会返回“off-white”或“red”,而是访问“prestock”、“instock”和“inactive”
      【解决方案3】:

      在swig中,不用Object.keys就可以同时获取key和value:

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

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

      【讨论】:

        猜你喜欢
        • 2014-12-28
        • 2020-02-05
        • 1970-01-01
        • 2020-09-24
        • 2014-11-30
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多