如何用胡子用任意键渲染json?

我有一个JSON对象,如下所示:

{ "XXX":{"name":"First"}, "YYY":{"name":"Second"}, .... } 

我需要渲染它看起来像:

 

XXX

First

YYY

Second

....

我将如何使用Moustache实现这一目标? 我面临的问题是我不知道如何引用这些项,因为键名是任意的。

使用您最喜欢的JSON解析器将JSON转换为哈希,这将为您提供如下所示的内容:

 json = { "XXX" => {"name" => "First"}, "YYY" => {"name" => "Second"}, "ZZZ" => {"name" => "Third"} } 

然后只需将其重新排列为具有已知键的小哈希列表:

 for_mustache = json.keys.inject([ ]) do |a, k| a.push({ :k => k, :v => json[k]['name']}) a end 

上面可能有更聪明的方法。 现在,你将在for_mustache有一些简单和常规的东西:

 [ { :k => "XXX", :v => "First" }, { :k => "YYY", :v => "Second" }, { :k => "ZZZ", :v => "Third" } ] 

然后,您可以像处理Mustache中的任何其他哈希数组一样处理该数据结构:

 {{#for_mustache}} 

{{k}}

{{v}}

{{/for_mustache}}