有json文件的预处理器吗?

有json文件的预处理器吗?,json,preprocessor,configuration-files,Json,Preprocessor,Configuration Files,我有一些配置文件,将复杂对象值存储为序列化json。目前,每个环境(localhost、dev、prod等)和客户端的每个安装都有一个配置文件。对于环境之间的配置,大多数值是相同的,但并非所有值都相同。因此,对于三个环境和四个客户端,我目前总共要管理12个文件 如果这是一个web.config文件,则会有web.config转换来解决此问题。如果这是c#,我会有编译器预处理器指令,可以用来根据当前构建配置替换不同的值 有没有人知道基本上是这样工作的,或者有一些好的建议,关于如何继续下去?我希望将

我有一些配置文件,将复杂对象值存储为序列化json。目前,每个环境(localhost、dev、prod等)和客户端的每个安装都有一个配置文件。对于环境之间的配置,大多数值是相同的,但并非所有值都相同。因此,对于三个环境和四个客户端,我目前总共要管理12个文件

如果这是一个web.config文件,则会有web.config转换来解决此问题。如果这是c#,我会有编译器预处理器指令,可以用来根据当前构建配置替换不同的值


有没有人知道基本上是这样工作的,或者有一些好的建议,关于如何继续下去?我希望将每个安装的文件数量减少到一个实例,以满足每个环境的需要。

配置对我来说总是有点过分,但是您可以使用属性文件来替换更改的部分,而apache ant的
任务则可以进行替换。大概是这样的:

<replace 
    file="configure.json"
    propertyFile="config-of-config.properties">
  <replacefilter 
    token="@token1@" 
    property="property.key"/>
</replace>

对我来说,配置的配置似乎总是有点过火,但是您可以使用一个属性文件来替换发生更改的部分,并使用ApacheAnt的
任务来进行替换。大概是这样的:

<replace 
    file="configure.json"
    propertyFile="config-of-config.properties">
  <replacefilter 
    token="@token1@" 
    property="property.key"/>
</replace>

这实际上取决于您的整个堆栈

如果您所说的应用程序只运行客户端,没有任何服务器端处理,那么实际上没有预处理。 你可以在实际使用数据之前对其进行进一步处理,但这并不意味着它会在提供页面之前被处理——这意味着人们必须坐在那里,等待这种情况发生,然后才能初始化需要这些数据的应用程序

首先,使用JSON的好处是它只是一个数据存储,与语言无关,并且现在得到了广泛的支持。因此,如果不是100%的客户端,那么没有什么可以阻止您使用服务器上使用的任何语言进行预处理,并缓存这些文件的版本,以便根据用户的需要为用户提供服务(和缓存)

如果您真的需要一个系统在客户端实时处理配置文件,并且您已经完成了创建应用程序视图的工作,这些视图很早就加载了,但是向用户显示它们正在推迟初始化(即:“加载…”/spinners),然后下载第二个JSON文件,其中包含所有需要的特定于实现的数据(您将有12个这样的小文件,它们应该易于管理),将两个JSON文件解析为JS对象,并使用辅助文件中的附加数据扩展大型配置对象


请注意:使用localhost或其他存储设备来缓存此内容,以便对于html5浏览器,此较长的加载只发生一次。

这实际上取决于您的整个堆栈

如果您所说的应用程序只运行客户端,没有任何服务器端处理,那么实际上没有预处理。 你可以在实际使用数据之前对其进行进一步处理,但这并不意味着它会在提供页面之前被处理——这意味着人们必须坐在那里,等待这种情况发生,然后才能初始化需要这些数据的应用程序

首先,使用JSON的好处是,它只是一个数据存储,与语言无关,现在得到了广泛的支持。因此,如果它不是100%的客户端,那么没有什么可以阻止您在服务器上使用任何语言进行预处理,并缓存这些文件的版本,以提供(和缓存)服务根据用户的需要,为用户提供服务

如果您真的需要一个系统在客户端实时处理配置文件,并且您已经完成了创建应用程序视图的工作,这些视图很早就加载了,但是向用户显示它们正在推迟初始化(即:“加载…”/spinners),然后下载第二个JSON文件,其中包含所有需要的特定于实现的数据(您将有12个这样的小文件,它们应该易于管理),将两个JSON文件解析为JS对象,并使用辅助文件中的附加数据扩展大型配置对象

请注意:使用localhost或其他存储设备来缓存此数据,以便对于html5浏览器,此较长的加载只发生一次。

来自Google的是一种基于JSON的超集语法的语言,添加了高级语言功能,有助于在JSON fromat中对数据进行建模。编译步骤产生我曾在一个项目中使用它来描述复杂的部署环境,这些环境有时相互继承,并且共享域属性,尽管在不同的实例中使用它们的方式不同。 例如,实例包含应用程序、这些应用程序的租户订阅、合同、目标等。所有这些属性的值都是在整个环境中重复出现的对象

他们的文档非常全面,不会错过,因为它们提供了一些非常强大的数据呈现功能。

来自谷歌,是一种基于JSON的超集语法的语言,添加了高级语言功能,有助于在JSON fromat中建模数据。编译步骤生成JSON。我在一个项目中使用它来描述复杂的部署环境,这些环境有时相互继承,并且共享域属性,尽管在不同的实例中使用它们的方式不同。 例如,实例包含应用程序、这些应用程序的租户订阅、合同、目标等。所有这些属性的值都是在整个环境中重复出现的对象

他们的文件非常详尽
{
  "firstName": "customer.firstName",
  "message": "Hi customer.firstName",
  "preheader": "customer.firstName, look what's inside"
}