使用mustache.js渲染复杂的JSON

时间:2012-07-23 11:21:53

标签: jquery json couchdb mustache

我是CouchDB的新手。我有时会安静地熟悉JSON。我现在的问题是我有一个相当复杂的JSON数据。我还阅读了一些mustache.js的文档,觉得它很容易呈现JSON。它适用于渲染简单的JSON,但如果存在嵌套对象,该怎么办? 以下是我的示例JSON:

{
 "name": "John",
 "email": "john@abc.com",
 "files": {
         "img1.jpg":
               {"content_type": "image/jpeg", "revpos": 3, "length": 33423, "stub": true},
         "img2.jpg": 
              {"content_type": "image/jpeg", "revpos": 2, "length": 146909, "stub": true}
 }

}

我想显示我的姓名,电子邮件和图片文件。我如何使用mustache.js

完成此任务

2 个答案:

答案 0 :(得分:1)

我会更改数据的返回方式。

{
 "name": "John",
 "email": "john@abc.com",
 "files": {
         0:
               {"filename": "image1.jpg", "content_type": "image/jpeg", "revpos": 3, "length": 33423, "stub": true},
         1: 
              {"filename": "image2.jpg", "content_type": "image/jpeg", "revpos": 2, "length": 146909, "stub": true}
 }

您的输出应该是这样的:

Name: {{name}}<br />
Email: {{email}}<br />
Files: <ul>
{{#.}}
    <li>{{filename}}</li>
{{/.}}
</ul>

答案 1 :(得分:-1)

我不知道如何循环一个对象并获取它的密钥,但是如果你为文件添加一个“filename”属性,你可以这样做:

Name: {{name}}<br />
Email: {{email}}<br />
Files: <ul>
{{#files}}
    <li>{{filename}}</li>
{{/files}}
</ul>

https://github.com/janl/mustache.js#non-empty-lists

顺便说一句:你发布的是有效的JS,但没有有效的JSON(密钥周围的引号丢失)