【发布时间】:2015-10-15 08:34:42
【问题描述】:
我有一个 JSON 主配置文件,其值可能会被特定帐户的配置文件(也在 JSON 中)覆盖。
主文件
{
"section1Configs": {
"setting01": true,
"setting02": true,
"setting03": false
},
section2Configs: {
"setting01": true,
"setting02": true,
"setting03": false
},
section3Configs: {
"setting01": true,
"setting02": true,
"setting03": false
},
section4Configs: {
"setting01": true,
"setting02": true,
"setting03": false
}
}
配置文件
{
"section1Configs": {
"setting01": true,
"setting02": true,
"setting03": true
},
section2Configs: {
"setting01": false,
"setting02": true,
"setting03": false
},
section3Configs: {
"setting01": true,
"setting02": false,
"setting03": false
},
section4Configs: {
"setting01": true,
"setting02": true,
"setting03": false
}
}
请注意,除了某些值(section01Config.setting03、section02Config.setting01 和 section03Config.setting02)不同外,它们是相同的。另请注意,两个文件中的整个 section4Configs 块是相同的。
不需要相同的文件,因为应用程序会加载两者并用帐户配置中不同的文件覆盖主文件。
我想要做的是有一个脚本遍历此类帐户文件的目录并删除每个文件中与主文件相同的键和值的条目。在这个例子中,我最终会得到一个像这样的文件:
{
section1Configs: {
setting03: true
},
section2Configs: {
setting01: false
},
section3Configs: {
setting02: false
}
}
【问题讨论】:
-
您是否可以使用任何其他编程语言,例如 perl?
-
我不懂 Perl,但可以努力让它运行起来。因此,如果您对 Perl 有建议,那也很好。
-
并非所有密钥都是well-formed(它们缺少引号)。这只是一个错误,还是您的文件没有无处不在?