Как визуализировать JSON с произвольными ключами, используя усы? - PullRequest
1 голос
/ 06 апреля 2011

У меня есть объект JSON, который выглядит следующим образом:

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

Мне нужно сделать так, чтобы он выглядел так:

<div>
    <h1>XXX</h1>
    <p>First</p>
</div>
<div>
    <h1>YYY</h1>
    <p>Second</p>
</div>
....

Как мне сделать это, используя Усы ? Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как ссылаться на элементы, потому что имена ключей являются произвольными.

1 Ответ

4 голосов
/ 06 апреля 2011

Преобразуйте 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"  }
]

Затем вы можете обрабатывать эту структуру данных так же, как и любой другой массив хэшей в Усиках:

{{#for_mustache}}
    <div>
        <h1>{{k}}</h1>
        <p>{{v}}</p>
    </div>
{{/for_mustache}}
...