YAML Jackson - 映射Integer属性时出现NullPointerException

时间:2016-04-27 16:45:27

标签: java jackson yaml

杰克逊2.6.5

我尝试将YAML文件映射到包含Integer属性的POJO,当它读取数字属性时,它会抛出:

  

com.fasterxml.jackson.databind.JsonMappingException :( was java.lang.NullPointerException)

有趣的是,如果我单引号引用文件中的数字属性,它就会很好地解析它们(我猜它会将String转换为整数)

我是否需要为杰克逊设置任何不尝试投射数值或其他东西的旗帜?

谢谢

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

要导入YAMLFactory,我将以下文件添加到pom.xml中,

winiumexe=new File("J:\\Winium.Desktop.Driver.exe");
options=new DesktopOptions();   
options.setApplicationPath("J:\\fsim-develop\\bin\\x64\\Debug\\FSim.exe");
service=new WiniumDriverService.Builder().usingDriverExecutable(winiumexe).             usingPort(9999).withVerbose(true).withSilent(false).
                buildDesktopService();
driver=new WiniumDriver(service,options);
driver.findElementById("FX_combo").click();
driver.findElementByName("GBP").click();

但正确的跟随者是

        <dependency>
            <groupId>com.aceevo.ursus</groupId>
            <artifactId>ursus-example-application</artifactId>
            <version>0.2.7</version>
        </dependency>

所以,我更改了此文件,问题消失了。

答案 1 :(得分:-1)

我发现我遇到了同样的问题。

我在一个单独的项目中尝试了一个简单的yaml文件,事情按预期工作(无论字段是什么类型都需要引用!)所以我不完全确定为什么会发生这种情况。

然而,在与POM和Yaml进行了一些战斗后,我认为现在正在运行,我认为这是因为我清理了完整的(生产)yaml以删除我们使用的不同类型的引号 - 有一个混合了'和',我尽可能删除所有引用,然后事情又开始了。

您可能还需要启用“ALLOW_UNQUOTED_FIELD_NAMES”:

mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);

但是我不相信这是什么让它起作用,也不确定为什么它被引用了价值!