如何在VBS中合并两个对象

时间:2019-04-29 04:49:35

标签: vbscript

我有两个JSON配置文件。一个master.config.js放在c:\中,另一个config.jsc:\的某个子目录中。 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

我需要合并对象subConfigsubConfig,以便最终的配置对象应具有:

  1. masterConfig中的所有配置+ subConfig中的新配置
  2. 如果两个配置文件中都定义了相同的键,则subConfig中的值将覆盖masterConfig中的值。

我该如何实现?

0 个答案:

没有答案