我正在尝试使用以下模板生成一个带有mustache的JSON文件:
{
"name": "{{customer_info.first_name}}",
"email": "{{contact_info.email}}",
"campaign": {
"campaignId": "{{contact_info.campaign.campaignId}}"
},
"tags": [
{{#contact_info.tags}}
{
"tagId": "{{tagId}}"
},
{{/contact_info.tags}}
]
}
作为输出示例,我得到:
{
"name": "Antonio",
"email": "myemail@gmail.com",
"campaign": {
"campaignId": "pfft"
},
"tags": [
{
"tagId": "6prrtAP"
},
{
"tagId": "64rrrE9"
},
]
}
不幸的是,这是一个格式错误的JSON,因为在数组的最后一个元素后面有一个不想要的“”。
你们谁能帮我解决这个问题,去掉逗号?
多谢了
5条答案
按热度按时间nsc4cvqm1#
尝试使用SelectTransformnpm包,它具有类似于Mustache的语法,没有Mustache产生的所有副作用,包大小也没有Handlebars.js那么大
pkmbmrz72#
我会这样做:
然后在Mustache模板中:
7cwmlq893#
我也遇到过类似的问题,我发现Handlebars和mustache很相似,而且功能更强大。
您可以 checkout 该模板并尝试使用该模板来解决您的问题,而无需向当前模型添加任何内容。
2skhul334#
不要从文本模板生成JSON。你会经常遇到这样的问题。多余的逗号,字符串中的 meta字符(如果
customer_info.first_name
包含双引号会怎么样),无法正确嵌套结构等等。将数据生成为编程语言中的本机结构,并使用编程语言提供的库将其编码为JSON。
但是,如果确实需要,可以尝试在模板外生成尽可能多的JSON数据(理想情况下,生成自包含的JSON片段),然后将其插入模板内。
然后,将
tagsJSON
传递给模板:这样,
tagsJSON
总是包含有效的JSON编码数据,因此它可以安全地作为JSON字典/对象中的一个值进行插值。即使标记列表为空,即使标记ID突然开始包含需要转义的字符等。rxztt3cl5#
这看起来是一个很好的答案:
模板应该是
来源:https://stackoverflow.com/a/7591866