2016-12-09 2 views
3

私はJekyllのJSONで指定されたナビゲーションのサブツリーを選択して使用しようとしています。Jekyll/Liquidを使用したJSONの解析とフィルタリング

これは、ファイル_data/navigation.jsonです:ジキル、私は{{ stuff }}を経由して、これを印刷する場合

{% assign stuff = site.data.navigation.main | where:"text","b" %} 

:今、私は 'B' のサブツリーを取得したい

{ 
    "main": [ 
     {"text": "a", "children" : [ 
      {"text": "aa" }, 
      {"text": "ab" } 
      ]}, 
     {"text": "b", "children": [ 
      {"text": "ba", "children": [ 
       {"text": "baa" }, 
       {"text": "bab" }, 
       {"text": "bac" } 
       ] }, 
      {"text": "bb", "children": [ 
       {"text": "bba" }, 
       {"text": "bbb" }, 
       {"text": "bbc" } 
       ]}, 
      {"text": "bc", "children": [ 
       {"text": "bca"}, 
       {"text": "bcb"} 
       ]}, 
      {"text": "bd" }, 
      {"text": "be" } 
      ]}, 
     {"text": "d" }, 
     {"text": "e"}, 
     {"text": "f" }, 
     {"text": "g" } 
    ] 
} 

/liquidsは、私が期待できるように、{"text": "b", "children":...を始める1行の文字列表現を提供します。 {{stuff | size}}は1だから、私はそれが1つのオブジェクトであり、代わりに内部的に文字のシーケンスであると期待できる。しかし、私がこの構造で作業したい場合、出力はありません。stuff.textstuff["text"]などは動作しません。

誰かに私のヒントはありますか?

答えて

3

{{ stuff | inspect }}を使用すると、配列であることがわかります。

{% assign stuff = site.data.navigation.main | where:"text","b" | first %}でオブジェクトを内部で捕捉できます。

+0

素晴らしい作品です、ありがとうございます! – Obererpel

関連する問題