对于Android,有一个java yaml库和snakeyaml一样好吗? (或者是否有人在Android上成功使用过snakeyaml?)
答案 0 :(得分:5)
我不认为你可以在没有修改的情况下在Android上使用SnakeYaml(至少现在)。
默认情况下,SnakeYaml使用Introspector
来获取课程的PropertyDescriptors
,而我可以看到java.beans.Introspector
在Android上不可用。但是SnakeYaml中有BeanAccess.FEILD
模式,它使用字段来转储/加载bean。该模式仅使用Android上提供的java.lang.reflect
个类。
因此,通过一些修改它可能会起作用。但我需要尝试以确定。
<强>加强>
现在可以使用以下内容构建Android兼容版本的SnakeYaml:
mvn -Pandroid clean package
更新(2017年3月):
从1.18开始,android构建位于中心位置。您可以像这样将
添加到pom.xml中<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version> VERSION </version>
<classifier>android</classifier>
</dependency>
答案 1 :(得分:0)
我认为你至少应该直接尝试使用snakeyaml。对于这种类型的库,很可能所需的Java API集在Android中可用。
如果它不起作用,您可以尝试在android项目中导入snakeyaml源代码并查看无法编译的内容。运气不错,可以解决缺少的API。
答案 2 :(得分:0)
从答案How do I convert from YAML to JSON in Java?
String convertYamlToJson(String yaml) {
ObjectMapper yamlReader = new ObjectMapper(new YAMLFactory());
Object obj = yamlReader.readValue(yaml, Object.class);
ObjectMapper jsonWriter = new ObjectMapper();
return jsonWriter.writeValueAsString(obj);
}
要求:
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.7.4'