gpt4 book ai didi

java - Resttemplate 没有正确反序列化 JSON

转载 作者:行者123 更新时间:2023-11-29 04:14:42 28 4
gpt4 key购买 nike

我的服务器输出以下 JSON 对象:(ContentType = application/json)

{"Name":["Name1","Name2"]}

这是我尝试将其读入 POJO 的 Java 代码。

它创建了一个 Names 类的实例,但是里面的数组是空的。

我在这里错过了什么?

restTemplate = new RestTemplate();
uri = "http://localhost:80/api/names";

Names namesWrapperInstance = restTemplate.getForObject(uri, Names.class);

if(namesWrapperInstance != null && namesWrapperInstance.getNames() != null) {
for(String name : namesWrapperInstance.getNames()) {
System.out.print(name);
}
}

@JsonRootName(value = "Name")
class Names {
private String[] Names;

public Names() {

}

public String[] getNames() {
return Names;
}

public void setNames(String[] Names) {
this.Names = Names;
}
}

最佳答案

删除 JsonRootName 注释,在您的 Java 代码中遵守 Java 命名约定,并使用 @JsonProperty("Name") 注释 names 字段。

我也强烈建议使用集合而不是数组。

如果可以,您也应该真正重构 JSON。字段使用小写字母,就像在 Java 中一样,并将其重命名为 names,因为它是一个数组,包含多个名称,而不仅仅是一个。如果您这样做,甚至不再需要 JsonProperty 注释。

关于java - Resttemplate 没有正确反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53122823/

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