使用 Mustache.js 嵌入 Raw JSON

Using Mustache.js to Embed Raw JSON

我在命令行上使用 mustache 将 JSON 对象嵌入到 HTML 对象的 <script> 标签内。

cat sampleData.json | mustache - man_report.mustache > output.html

示例数据如下所示:

{"report_type":"total_by_age_group",
"data":[{"age_group":"Age 41 - 65","percent":41.04},
        {"age_group":"Age Over 66","percent":19.11},
        {"age_group":"Age < 18 Or Invalid Birth Date","percent":0.00},      
        {"age_group":"Age 18 - 25","percent":8.03},
        {"age_group":"Age 26 - 40","percent":31.82}]}

这也是我希望在生成的 HTML 文件中看到的内容。

report.mustache 看起来像:

reportObject = {{data}}

output.html 看起来像这样:

reportObject = [object Object],[object Object],[object Object],[object Object],[object Object]

我只想要与开始时完全相同的 JSON。有什么想法吗?

有点老了,但这是我搜索时出现的第一个问题。我在这里找到了答案:

如果您能够预处理数据,则可以将其字符串化。这将使它成为一个可以嵌入的字符串:

var sampleData = JSON.stringify(sampleData);

完成此操作后,您需要确保 Mustache 不会将字符串 HTML 化(将把手增加三倍):

var reportObject = {{{.}}};

然后您可以在您的网页中访问它:

alert(reportObject.report_type);
for($data in reportObject.data){
     alert(JSON.stringify(reportObject.data[$data]));
}