如何编写JSON配置以根据Flag值选择对应对象
优化后的Flag驱动对象选择JSON配置
这里给你一个语义更清晰、扩展性更好的JSON配置方案,完全满足根据外部Flag值选择调用对应对象的需求:
{ "featureMapper": { "flagKey": "flag_name_from_properties", "caseMapping": { "true": { "foo": "xyz", "num": "123" }, "false": { "foo": "abc", "num": "12" } } } }
配置字段说明
flagKey: 对应配置文件中存储Flag值的键名,程序通过这个键读取Flag的布尔值(true/false)caseMapping: 存储不同Flag值对应的目标对象,键直接用"true"和"false",和Flag的布尔值直接映射,逻辑更直观
配套逻辑说明
程序执行时的核心步骤:
- 从配置文件读取
flagKey对应的Flag值(比如拿到布尔值true) - 将Flag值转为字符串(
"true"),在caseMapping中匹配对应的对象 - 调用匹配到的对象执行后续逻辑
如果后续需要支持更多Flag值(比如除了true/false还有其他枚举值),这个结构可以直接扩展caseMapping的键值对,扩展性更强。
内容的提问来源于stack exchange,提问作者barun sobti
相关产品推荐
相关产品推荐

