gpt4 book ai didi

scala - 在类型安全配置中使用 withFallBack 合并配置中的数组值

转载 作者:行者123 更新时间:2023-12-03 08:47:42 27 4
gpt4 key购买 nike

我有一些数据可用作 HOCON 格式的类型安全配置文件。

有一个像这样的基本文件:

"data":{
"k1":{
"values": ["v1", "v2"]
},
"k2":{
"values": ["x1"]
},
"k3":{
"values": ["z1"]
}
}

可能有一个文件可用于进行一些更改,例如在测试期间,如下所示:

"data":{
"k1":{
"values": ["v9"]
}
}

我正在尝试使用

合并这两个文件

fileConfig.withFallback(baseFileConfig)

最终结果是:

"data":{
"k1":{
"values": ["v9"] // desired ["v1","v2","v9"]
},
"k2":{
"values": ["x1"]
},
"k3":{
"values": ["z1"]
}
}

即回退配置中“k1”的数组值将被忽略。有没有办法在合并后从两个文件中获取连接数组?

最佳答案

为此,您需要添加值连接的引用(values: ${data.k1.values} ["v9"]):

lazy val defaultConfig     = ConfigFactory.parseResources("a.conf")
lazy val additionalConfig = ConfigFactory.parseResources("b.conf" )
println(additionalConfig.withFallback(defaultConfig).resolve())
// Config(SimpleConfigObject({"data":{"k1":{"values":["v1","v2","v9"]},"k2":{"values":["x1"]},"k3":{"values":["z1"]}}}))

配置:

默认配置

data: {
k1: {
values: ["v1", "v2"]
},
k2: {
"values": [
"x1"
]
},
k3: {
"values": [
"z1"
]
}
}

附加配置:

data: {
k1: {
values: ${data.k1.values} ["v9"]
}
}

关于scala - 在类型安全配置中使用 withFallBack 合并配置中的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60723552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com