gpt4 book ai didi

Java\JSON : UnrecognizedPropertyException: Unrecognized field "CefMessagesGenerators" error

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:41 27 4
gpt4 key购买 nike

我有以下 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 是:

enter image description here

(不幸的是,我必须在此处添加 json 图像而不是文本,因为系统声称“我有以下 Json 和相应的 Java 类。”...)

最佳答案

正如评论中已经描述的,主要问题是您的 json 包含属性名称 CefMessagesGenerators 但类 ControllerLab 包含属性 cefMessagesGenerators (请注意第一个字母的大小写差异)。因此解析器找不到属性“CefMessagesGenerators”。

要解决这个问题,有几个选项,具体取决于您使用的解析器:

  • 将 json 属性重命名为“cefMessagesGenerators”(首选选项)
  • 在 Pojo 中定义非标准属性名称(例如通过 Jackson 的 @JsonProperty 等注释)
  • 定义自定义命名策略,允许解析器将 CefMessagesGenerators 映射到 cefMessagesGenerators

请注意,出于多种原因,第一个选项将成为首选选项。更重要的原因之一是这样做不会违反 principle of least astonishment (人们希望属性名称完全匹配)。

最后,引用您的评论:

I changed the json label to start with small letter and left the class name to begin with a capital letter and it worked (don't understand why...)

请注意,CefMessagesGenerators 类与此处无关,因为 ControllerLab 不使用它。因此类名根本不重要。

关于Java\JSON : UnrecognizedPropertyException: Unrecognized field "CefMessagesGenerators" error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56771368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com