0

I'm developing a back-end web application using Spring Boot with Java and I have the following problem: A REST service returns me the following JSON:

{
   "cap":"98888"
}

This is my JAVA class which models the output based on the content:

@NoArgsConstructor
@Data
public class MyObject {

    private String cap;
    
}

I would like to change the field name for MY service to return the following JSON:

{
   "CAP":"98888"
}

In my JAVA code, I make the call via RestTemplate, like this:

return restTemplate.postForObject(uriBuilder.build().toUri(), new HttpEntity<>(request, headers), MyObject.class);

I've tried to use tons of stuff with Jackson, including @JsonProperty, like this:

@NoArgsConstructor
@Data
public class MyObject {

    @JsonProperty("CAP")
    private String cap;
    
}

But the result is this:

{
   "CAP":null
}

As if it no longer matches the original name of the property. In practice I can only get an output with correct value but original field name (WHICH I DON'T WANT) or an output with the name of the field I want (i.e. CAP) but with a null value. Which is the right way to rename properties with Spring annotations?

wishyouwerehere
  • 163
  • 1
  • 3
  • 8

0 Answers0