7

我正在尝试使用杰克逊将 yaml 文件解析为模型

型号——

public class TestModel {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

解析

private static ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
TestModel obj = mapper.readValue(yamlFile, TestModel.class);

yaml 文件

name: somename

例外

Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'name': was expecting 'null', 'true', 'false' or NaN
[error]  at [Source: /Users/amruth.s/Documents/Analytics/hydra/reportManager/target/scala-2.9.1/classes/viz/LineGraph.yaml; line: 1, column: 6]
[error]     at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1369)
[error]     at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:599)
[error]     at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:2449)
[error]     at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:2426)
[error]     at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._matchToken(UTF8StreamJsonParser.java:2403)
[error]     at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:760)
[error]     at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:665)
[error]     at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:2926)
[error]     at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2873)
[error]     at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1988)
[error]     at com.flipkart.hydra.util.YAMLUtil.toObject(YAMLUtil.java:29)
4

1 回答 1

7

尝试更新您的 jackson-dataformat-yaml 版本。在更新 Maven 依赖项的版本之前,我遇到了同样的问题。

我的依赖看起来像:

<dependency>
 <groupId>com.fasterxml.jackson.dataformat</groupId>
 <artifactId>jackson-dataformat-yaml</artifactId>
 <version>2.1.3</version>
</dependency>
于 2014-01-29T16:16:02.423 回答