【问题标题】:Github Jekyll Liquid object access issue in .md.md 中的 Github Jekyll Liquid 对象访问问题
【发布时间】:2018-10-13 05:39:21
【问题描述】:

所以...尝试访问我在 Github 页面中的一些数据。对此有点新意。

我在一个名为 mydata.json 的文件中有一些类似的 json 数据:

{
  "test": {
    "item1" : {"name" : "item name", "number": "item number"},
    "item2" : {"name" : "item name", "number": "item number"}
  }
}

但是当我尝试在 .md 文件中访问它时:

{% for item in site.data.mydata.test %}
- {{item['name']}}
{% endfor %}

它什么也不返回。

{% for item in site.data.mydata.test %}
- {{item[1]}}
{% endfor %}

也不返回任何内容。

我真的想列出每个项目下每个键值对的所有值。

我绝对可以单独访问和打印每个值,即:

{{site.data.mydata.test.item1.name}}

认为由于 MD 格式,它会将 [] 视为链接包装器?我不知道如何检验这个理论。我访问这些数据的方式是否离谱?

澄清

作品:site.data.mydata.test.item1.name

不起作用:site.data.mydata.test.item1["name"]

【问题讨论】:

    标签: github jekyll liquid github-pages


    【解决方案1】:

    迭代哈希时,item[0] 包含键,item[1] 包含值”(参见liquid doc),

    {% for item in site.data._mydata.test %}
      {{item | inspect}} => ["item1",{"name"=>"item name","number"=>"item number"}]
                         =>  item[0]  |------------item[1]----------------------|
    {% endfor %}
    

    您的循环将如下所示:

    {% for item in site.data._mydata.test %}
     - {{ item[1]["name"] }} - {{ item[1]["number"] }}
    {% endfor %}
    

    【讨论】:

    • 我去查看了我的仓库,我的文件名上没有前面的 _。我可以按照 OP 中的说明直接访问单个属性,因此数据是我期望的。这个问题特别是每当我尝试使用括号表示法访问对象时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2018-02-09
    • 2018-05-15
    • 2018-08-09
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多