use*_*mda 1 java yaml hashmap dropwizard
在我的 config.yml 中我有这样的配置
myObject:
key1: value1
key2:value2
key3: value3
Run Code Online (Sandbox Code Playgroud)
然后我有一个 Dropwizard Configuration 类
public class MyObject {
String key1;
String value1;
String key2;
.. so on
}
Run Code Online (Sandbox Code Playgroud)
如何读取 yml 文件,使其仅作为一个哈希图读取?这可能吗?
您可以使用 Jackson 的 objectmapper 读取 yaml 文件,然后为其指定您想要的任何类型。上述 yaml 的一个非常基本的示例是:
文件test_yaml.yaml:
myObject:
key1: value1
key2: value2
key3: value3
Run Code Online (Sandbox Code Playgroud)
代码:
package yaml;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
public class YamlMapParser {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
InputStream resource = YamlMapParser.class.getResourceAsStream("/yaml/test_yaml.yaml");
Map readValue = mapper.readValue(resource, Map.class);
System.out.println(readValue);
}
}
Run Code Online (Sandbox Code Playgroud)
重要的是要给杰克逊ObjectMapper一个YAMLFactory合作的机会。
上面的代码然后打印:
{myObject={key1=value1, key2=value2, key3=value3}}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助!
阿图尔
| 归档时间: |
|
| 查看次数: |
9316 次 |
| 最近记录: |