мой сервер выводит следующий объект JSON: (ContentType = application / json)
{"Name":["Name1","Name2"]}
Это мой код Java для попытки прочитать это в POJO.
Он создает экземпляр класса Names, но массив внутри имеет значение NULL.
Что мне здесь не хватает?
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 и аннотируйте поле names с помощью @JsonProperty("Name").
Я также настоятельно рекомендую использовать коллекции, а не массивы.
Если можете, вам также действительно следует провести рефакторинг JSON. Используйте строчные буквы для полей, как в Java, и переименуйте его в names, поскольку это массив, содержащий несколько имен, а не только одно. Если вы это сделаете, аннотация JsonProperty больше не понадобится.
большое спасибо, это сработало. К сожалению, у меня нет возможности изменять код на стороне сервера.