Java\JSON:无法识别的属性异常:无法识别的字段“CefMessagesGenerators”错误
我有以下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类。”…)
# 1 楼答案
如注释中所述,主要问题是json包含属性名
CefMessagesGenerators
,而类ControllerLab
包含属性cefMessagesGenerators
(注意第一个字母的大小写差异)。因此,解析器无法找到属性“CefMessagesGenerators”要解决这个问题,有两个选项,具体取决于您使用的解析器:
@JsonProperty
)CefMessagesGenerators
映射到cefMessagesGenerators
请注意,出于多种原因,第一个选项将是首选选项。其中一个更重要的原因是这样做不会违反principle of least astonishment(人们希望属性名称完全匹配)
最后,引用你的评论:
注意,类
CefMessagesGenerators
在这里不相关,因为它没有被ControllerLab
使用。因此,类名根本不重要