【发布时间】:2016-07-19 11:08:36
【问题描述】:
我想使用 mustache 将我的输入 JSON 映射到另一个 JSON。
我的输入 JSON 是这样的:
{
"data": [
{ "catalogId": "1850", "productId": "ELEC004A"},
{ "catalogId": "1851", "productId": "PNG679"}
]
}
我想要一个模板,我可以在其中将胡须标签与我的输出 json 结合起来。
var template = JSON.stringify(
{
Product: [
{{#data}}
{
productId:'{{productId}}',
parentProductId:'{{catalogId}}'
}
{{/data}}
]
}
);
我试过了,但是使用带有 JSON 的 mustache 标记会给我错误。
我尝试在不使用 JSON.stringify 的情况下定义模板,但没有运气!
必须使用mustache,因为它是必需的,实际输入的JSON非常大,无法使用传统方式映射它。
【问题讨论】:
-
你想要的输出是什么?为什么要留胡子?为什么不只是常规的 javascript 代码?
-
您可能需要检查您的代码格式。
-
@TamasHegedus 我想要的输出是模板中提到的 JSON,用我输入 JSON 中的相关数据替换了小胡子标签
-
据我了解,您传递给 JSON.stringify() 的参数被解释为一个对象,但包含胡须标签(例如 {{#data}})。这会导致 JSON 语法不正确。将模板转换为字符串,不要使用 JSON.stringify()
-
@StefanReimers 是的,你是对的!但即使我删除 stringify 并执行正常的 toString 我得到
unexpected token { on {{#data}}
标签: javascript json mustache