我有以下Json和相应的Java类。
能否请您检查一下并告知我为什么会出现此异常?
是因为我添加了另一个
谢谢!
public class CefMessagesGenerator {
private String ip;
private String username;
private String password;
//getters and setters
}
public class CefMessagesGenerators {
private List<CefMessagesGenerator> cefMessagesGeneratorList = null;
public CefMessagesGenerators() {
}
public CefMessagesGenerators(List<CefMessagesGenerator> cefMessagesGeneratorList) {
super();
this.cefMessagesGeneratorList = cefMessagesGeneratorList;
}
public List<CefMessagesGenerator> getCefMessagesGeneratorList() {
return cefMessagesGeneratorList;
}
public void setCefMessagesGeneratorList(List<CefMessagesGenerator> cefMessagesGeneratorList) {
this.cefMessagesGeneratorList = cefMessagesGeneratorList;
}
}
public class ControllerLab {
private KubernetesCluster kubernetesCluster;
private AzureEnvironment azureEnvironment;
private PortalEnv portalEnv;
private List<CefMessagesGenerator> cefMessagesGenerators = null;
//getters and setters
public List<CefMessagesGenerator> getCefMessagesGenerators() {
return cefMessagesGenerators;
}
public void setCefMessagesGenerators(List<CefMessagesGenerator> cefMessagesGenerators) {
this.cefMessagesGenerators = cefMessagesGenerators;
}
}
,(部分)json是:
(不幸的是,我不得不在此处添加json图像作为文本,因为系统声称“我具有以下Json和相应的Java类。” ...)
答案 0 :(得分:0)
正如注释中已经描述的那样,主要问题是您的json包含属性名称CefMessagesGenerators
,而类ControllerLab
包含属性cefMessagesGenerators
(请注意第一个的大小写不同)信件)。因此,解析器找不到属性“ CefMessagesGenerators”。
要解决此问题,将有几个选项,具体取决于您使用的解析器:
@JsonProperty
之类的注释)CefMessagesGenerators
映射到cefMessagesGenerators
请注意,出于多种原因,第一个选项将是首选。更重要的原因之一是,这样做不会违反principle of least astonishment(人们希望属性名称完全匹配)。
最后,引用您的评论:
我将json标签更改为以小写字母开头,而将类名保留为以大写字母开头,并且它起作用了(不明白为什么...)
请注意,类CefMessagesGenerators
在这里不相关,因为ControllerLab
不使用它。因此,类名根本没有关系。