杰克逊2.6.5
我尝试将YAML文件映射到包含Integer属性的POJO,当它读取数字属性时,它会抛出:
com.fasterxml.jackson.databind.JsonMappingException :( was java.lang.NullPointerException)
有趣的是,如果我单引号引用文件中的数字属性,它就会很好地解析它们(我猜它会将String转换为整数)
我是否需要为杰克逊设置任何不尝试投射数值或其他东西的旗帜?
谢谢
答案 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);
但是我不相信这是什么让它起作用,也不确定为什么它被引用了价值!