我有两个JSON配置文件。一个master.config.js
放在c:\
中,另一个config.js
在c:\
的某个子目录中。 config.js
的目的是添加更多配置数据或覆盖master.config.js
中的所有配置数据。
我现在已经将这两个JSON加载到VBS中的单独对象中(我的VBS作为.vbs
文件运行,而不在浏览器中运行)。
现在如何确定上面讨论的覆盖/合并有效?
以下功能有助于加载配置:
Function ParseJson(strJson)
Set html = CreateObject("HTMLFile")
Set window = html.ParentWindow
window.ExecScript "var json = " & strJson, "JScript"
Set ParseJson = window.json
End Function
Function LoadConfigFromFile(strPath)
strJson = CreateObject("Scripting.FileSystemObject").OpenTextFile(strPath).ReadAll
LoadConfigFromFile = ParseJson(strJson)
End Function
现在,我像这样加载配置文件:
Function LoadConfig()
Dim subConfig, masterConfig, config
Set subConfig = LoadConfigFromFile("Config.json")
Set masterConfig = LoadConfigFromFile(subConfig.Env.DefaultMasterConfig)
' TODO: merge the configs to one single config object
Set config = ' this is where I am stuck at
End Function
我需要合并对象subConfig
和subConfig
,以便最终的配置对象应具有:
masterConfig
中的所有配置+ subConfig
中的新配置subConfig
中的值将覆盖masterConfig
中的值。我该如何实现?