У меня есть два файла конфигурации 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
.
Как мне этого добиться?