【发布时间】:2016-04-03 19:48:07
【问题描述】:
我正在尝试使用jackson 反序列化一个yaml 文件,它的工作方式类似于Json,所以为了方便我将使用Json。
我的 Json 结构如下所示:
{
"version": "2",
"services": {
"app": {
"build": {
"context": "./",
"args": {}
},
"image": "imageName"
},
"results": {
"build": "./",
"image": "imageName"
}
}
}
我想使用 jackson 对其进行反序列化,但在使用默认 ObjectMapper 时出现 UnknownPropertyException。
这是我要反序列化的类:
public class ServiceModel {
List<ContainerModel> containers;
public List<ContainerModel> getContainers() {
return containers;
}
public void setContainers(List<ContainerModel> containers) {
this.containers = containers;
}
}
我的容器模型看起来像这样:
public class ContainerModel {
@JsonProperty("build")
private String build;
@JsonProperty("args")
private List<String> args;
@JsonProperty("context")
private String context;
@JsonProperty("dockerfile")
private String dockerFile;
// Getters and Setters below
编辑:我在描述 Json 结构时是错误的。请查看我将jackson映射到JsonNode时生成的更正的Json结构
这里应该把app和results映射到ContainerModel
【问题讨论】:
-
您能提供(部分)您要反序列化的类吗?
-
@nyname00 请查看编辑。谢谢
-
@r0shi,你也可以发
ContainerModel吗? -
@Casey 添加了 ContainerModel。它没有任何自定义对象,并且属性名称也是已知的,所以我认为这不会是一个大问题
-
我猜 'app' 中的 'build' 属性不应该包含 'context' 和 'args'。而且,您的班级中没有“图像”属性。应该是“dockerFile”吗?
标签: java json jackson deserialization