如何使用车把模板显示json对象键和值?

时间:2014-01-30 09:13:48

标签: jquery json handlebars.js

我已经开始学习handlebar.js了。我正在努力展示json数据。

我的json看起来像这样:

 var data={
          "record1":
          [
             {
               "first":
                      [
                       {
                         "name":"john",
                         "city":"newyork"  
                       },
                       {
                         "name":"britto",
                         "city":"bangalore"  
                       }
                      ]
             },
            {"second":
                 [
                  {
                    "name":"franklin",
                    "city":"newyork"  
                  },
                  {
                    "name":"leo",
                    "city":"bangalore"  
                  }
                ]
            }
        ]
    };

这里这个json来自服务器响应,所以我不知道任何关键和价值。我必须使用把手动态显示键和值...我已尝试使用eachKey,但我没有得到解决方案。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:28)

您可以在Handlebars模板中渲染列表的键/值,如下所示:

{{#each object}}
  {{@key}}: {{this}}
{{/each}}

答案 1 :(得分:2)

首先,谢谢你,这确实导致我需要获得密钥。

如果不清楚OP“this”指的是该迭代的当前对象。

因此,在您的案例数据中,对象具有数组record1,其中包含2个对象数组对象:第一个和第二个。

使用每个:

{{#each record1}}
    {{@key}}: {{this}}
{{/each}}

会给你: 第一:(对象,数组) 第二:(对象,数组)

您将循环遍历对象(数据)。在这种情况下如果你想挖掘你需要一个计数器来进一步。我建议使用把手块助手来到那里。

以下是文档:http://handlebarsjs.com/block_helpers.html

答案 2 :(得分:2)

对象:

{{#each myObject}}
    Key: {{@key}} Value = {{this}} //renders object like {key: value}
{{/each}}

请注意,只会枚举通过hasOwnProperty测试的属性。

对于数组:

{{#each myArray}}
    Index: {{@index}} Value = {{this}}
{{/each}}