是否可以在Apache commons configuration中创建String
的JSON配置,以便我可以从中获取一些值?
例如,如果我的String
包含此配置,我希望能够将其转换为org.apache.commons.configuration2.json.JSONConfiguration
,以便我可以从中获取值使用getX(nodeName)
方法(例如:config.getInt("sectionA.valueB")
将返回332):
{sectionA:{valueA:true, valueB:332}, sectionB:{valueA:124, valueB:"abc"}}
我是否必须将字符串包装在诸如Reader
之类的内容中,以便我可以使用配置的load(Reader)
方法?如果是的话,最短和最快的方法是什么?
答案 0 :(得分:1)
我更倾向于使用JSON而不是XML,但是没有为库编写我自己的JSON垫片,我没有看到任何内置的'溶液
答案 1 :(得分:0)
使用FileBasedConfigurationBuilder
类(版本> = 2.2)实例化JSONConfiguration
:
Configurations configs = new Configurations();
FileBasedConfigurationBuilder<JSONConfiguration> builder =
configs.fileBasedBuilder(JSONConfiguration.class, file);
不幸的是,我还没有找到一种使JSONConfiguration
精美印刷的方法。覆盖类不是一个选择,因为它使用私有字段。但是,提供您自己的类(复制JSONConfiguration
)并修改write方法很简单:
@Override
public void write(final Writer out) throws ConfigurationException, IOException {
this.mapper.writerWithDefaultPrettyPrinter().writeValue(out,
constructMap(this.getNodeModel().getNodeHandler().getRootNode()));
}