【问题标题】:Is there a good yaml library for Android?Android 有没有好的 yaml 库?
【发布时间】:2011-05-02 12:43:51
【问题描述】:

有没有一个 java yaml 库和 Android 上的snakeyaml 一样好? (或者是否有人已经在 Android 上成功使用了snakeyaml?)

【问题讨论】:

    标签: java android yaml


    【解决方案1】:

    我不认为你可以在不修改的情况下在 Android 上使用 SnakeYaml(至少现在是这样)。

    默认情况下,SnakeYaml 使用Introspector 为类获取PropertyDescriptors,而我可以看到java.beans.Introspector 在Android 上不可用。但是 SnakeYaml 中有 BeanAccess.FEILD 模式,它使用字段来转储/加载 bean。该模式仅使用 Android 上可用的 java.lang.reflect 类。

    因此,经过一些修改,它可能会起作用。但我需要尝试一下才能确定。

    已添加

    现在可以使用 SnakeYaml 构建 Android 兼容版本:

    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>
    

    或在您的build.gradle 中像这样:

    implementation "org.yaml:snakeyaml:1.18:android"
    

    【讨论】:

    • 谢谢。知道这很有帮助。如果您确实尝试过,请在此处更新我们。我会等你先尝试,因为我是零经验开始的。
    • 是的。它没有未经修改就无法构建。但是...这个应该可以工作:code.google.com/p/snakeyaml/downloads/… 请记住,它在类上使用字段,而不是 setter 和 getter!!!无论您设置什么BeanAccess.xxx 模式,它始终是BeanAccess.FIELD。请尝试一下。我创建了一个关于 Android code.google.com/p/snakeyaml/issues/detail?id=92 的问题,请随意将 cmets 放在那里。
    • 感谢您提供修改后的版本!
    【解决方案2】:

    我认为你至少应该直接尝试snakeyaml。对于此类库,所需的 Java API 集很可能在 Android 中可用。

    如果不行,你可以尝试在android项目中导入snakeyaml源代码,看看有什么编译不出来。运气好的话,可以解决缺少的 API。

    【讨论】:

    • 感谢您的鼓励。以我有限的经验(还没有 Android 开发),我希望其他人已经尝试过这个。但我确实喜欢snakeyaml,所以如果它可以在Android 上运行就太好了。
    【解决方案3】:

    来自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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多