如何使用把手来处理这样的复杂JSON数据?

时间:2014-07-15 15:10:30

标签: javascript json node.js nested handlebars.js

我已经阅读了几篇关于处理复杂JSON数据的帖子,但还没有找到与我目前遇到的问题类似的内容。

以下是我的数据格式:

         var data = {

             "results":{
                 "employees":[
             {"firstName":{"type":"Name", "value":"Doe"}, 
              "lastName":{"type":"Name", "value":"Smith"},
              "birthDay":{"type":"Date", "value":"June"}
             },

             {"firstName":{"type":"Name", "value":"Lucy"}, 
               "lastName":{"type":"Name", "value":"Lee"},
               "birthDay":{"type":"Date", "value":"October"}
             }
             ]
         }}

我想要抓住所有的名字,我已经尝试了类似的东西,这些都不起作用:

            {{#each results.employees}}
                   {{#each firstName}}
                  Name: {{value}}<br>
                {{/each}}
            {{/each}}

通过网站解析数据并以这种方式进行格式化。我最好不要重新格式化JSON文件。

2 个答案:

答案 0 :(得分:3)

#each语句用于迭代数组。您数据中唯一的数组是employees。顶级元素为results,然后您将employees数组作为子级,其中有一个名为firstName的子级,其中有一个名为value的子级。

只需遵循相同的层次结构:

{{#each results.employees}}
   Name: {{firstName.value}}
{{/each}}

要记住的要点:

  1. 仅在数组元素上使用#each
  2. 使用属性访问器(点表示法)
  3. 按层次结构向下工作
  4. 您必须以字面值结束(如字符串),否则会在您发现时打印出[object]

答案 1 :(得分:0)

对我来说,似乎结果不是一个数组,因此你不应该使用每个数组 而是使用这样的东西

{{#each results.employees }}
  Name: {{firstName}}<br>
{{/each}}