首页 > 解决方案 > Jekyll 输出使用两个 JSON 源

问题描述

假设我有一个项目列表(我们称之为)和一个与项目列表关联proj.json的较小子项目 ( ) 的列表。sub_proj.json文件如下:

项目.json

[{
            "title": "Project 1",
            "description": "aaa.",
            "subproj": ["RefSP1", "RefSP2"]
        },

        {
            "title": "Project 2",
            "description": "aaa.",
            "subproj": ["RefSP3"]
        }]

sub_proj.json

[{
            "title": "Sub Project 1",
            "description": "aaa.",
            "key": "RefSP1"
        },

        {
            "title": "Sub Project 2",
            "description": "aaa.",
            "key": "RefSP2"
        },

        {
            "title": "Sub Project 3",
            "description": "aaa.",
            "key": "RefSP3"
        }]

但在 中output.html,我似乎遗漏了一些东西。代码如下:(为简单起见,我删除了它的格式)

{% for item in site.data.proj %}

{{ item.title }}

{% assign key_array = item.subproj %}

{% for sub in key_array %}
{% assign subproject = site.data.sub_proj | where:"key",sub %}

{{ subproject.title | inspect }}

{% endfor %}

我似乎使用 . 获得了正确数量的子项目{{ subproject.title | inspect }},但它们都是nil. 添加jsonify并没有真正做任何事情。

编辑:

打印出来{{ item | inspect }}

结果是

{ "title"=>"Project 1","description"=>"aaa.","subproj"=>["RefSP1","RefSP2"]}

{{ subproject | inspect }}

出来作为

[{"title"=>"Sub Project 1","description"=>"aaa.","key"=>"RefSP1"}] [{"title"=>"Sub Project 2","description"=>"aaa.","key"=>"RefSP2"}]

方括号是主要区别。我尝试通过过滤器删除它们,仍然没有。

标签: jsonjekyll

解决方案


推荐阅读