有一个,https://www.npmjs.com/package/json-variables
从概念上讲,它是一个函数,它接受一个字符串,JSON 内容,撒上特殊标记的变量,并生成一个解析了这些变量的字符串。就像Sass或Less对 CSS 所做的一样 - 它用于干燥源代码。
这是一个例子。
你会在 JSON 文件中添加这样的内容:
{
"firstName": "customer.firstName",
"message": "Hi %%_firstName_%%",
"preheader": "%%_firstName_%%, look what's inside"
}
注意它是如何干燥的——价值的单一真实来源firstName
。
json-variables
会将其处理为:
{
"firstName": "customer.firstName",
"message": "Hi customer.firstName",
"preheader": "customer.firstName, look what's inside"
}
也就是说,Hi %%_firstName_%%
将firstName
在根级别查找(但同样,它可能是更深的路径,例如data1.data2.firstName
)。还解决“冒泡”到根级别,您还可以使用自定义数据结构等等。
JSON 处理任务难题的缺失部分是:
在所描述的情况下,我们至少可以采用两种方法:一对多或多对多。
以前 - Gulp 可以从一个或多个类似 JSON 的源文件中“烘焙”许多 JSON 文件,json-variables
从而干燥参考。
稍后 - 或者,它可以是“托管”的 JSON 文件集,呈现为一组分发文件 - Gulp 监视src
文件夹,运行object-fill-missing-keys以规范化模式,甚至可能对对象进行排序(是的,有可能,排序对象)。
这一切都取决于所需的 JSON 文件集的相似程度以及如何自定义值以及是手动完成还是以编程方式完成。