【问题标题】:Using Mustache.js to Embed Raw JSON使用 Mustache.js 嵌入原始 JSON
【发布时间】:2016-03-03 07:05:56
【问题描述】:

我在命令行上使用 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。有什么想法吗?

【问题讨论】:

  • 我最终用 PHP 来做这件事……这是我写过的第一个 PHP 脚本。

标签: mustache


【解决方案1】:

有点老了,但这是我搜索时出现的第一个问题。我在这里找到了答案:https://stackoverflow.com/a/15580946/1961413

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

var sampleData = JSON.stringify(sampleData);

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

var reportObject = {{{.}}};

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

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

【讨论】:

  • 能够测试这个我有点过了,但你的回答很有道理,所以我会接受它。
  • 谢谢你,虽然我不会担心。这更像是给我自己和下一个提出问题的人的便条。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
相关资源
最近更新 更多