Как объединить два объекта в VBS - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть два файла конфигурации 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 так, чтобы конечный объект конфигурации имел:

  1. Все настройки в masterConfig + что-нибудь новое в subConfig
  2. Если в обоих файлах конфигурации определен один и тот же ключ, то значение из subConfig переопределит значение из masterConfig.

Как мне этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...