我有一个JSON对象,如下所示:
{
"XXX":{"name":"First"},
"YYY":{"name":"Second"},
....
}
我需要渲染它看起来像:
<div>
<h1>XXX</h1>
<p>First</p>
</div>
<div>
<h1>YYY</h1>
<p>Second</p>
</div>
....
如何使用Mustache完成此操作?我面临的问题是我不知道如何引用这些项,因为键名是任意的。
答案 0 :(得分:4)
使用您最喜欢的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}}
<div>
<h1>{{k}}</h1>
<p>{{v}}</p>
</div>
{{/for_mustache}}