On Tue, Aug 4, 2020 at 12:11 PM ajay mundru <[email protected]> wrote:
>
> But Event class i have is auto generated and I cannot add annotation on the 
> getter method. Is there any other solution to make this work?

You could use mix-in annotations (see f.ex
https://www.baeldung.com/jackson-annotations)
that can be attached without modifying actual classes.

-+ Tatu +-

>
> On Tuesday, August 4, 2020 at 2:37:32 PM UTC-4, Tatu Saloranta wrote:
>>
>> On Tue, Aug 4, 2020 at 11:24 AM ajay mundru <[email protected]> wrote:
>> >
>> > In Event class POJO
>> >
>> > @JsonProperty("aDocId")
>> > private String aDocId = null;
>> >
>> > public String getADocId() {
>> >     return aDocId;
>> >   }
>> >
>> >   public void setADocId(String aDocId) {
>> >     this.aDocId = aDocId;
>> >   }
>> >
>> > -------------------------------------------------------------------------------------
>> > While doing a post request,
>> >
>> > Event event = (Event) object;
>> > HttpHeaders headers = new HttpHeaders();
>> > headers.setContentType(MediaType.APPLICATION_JSON);
>> > HttpEntity<Event> entity = new HttpEntity<>(event, headers);
>> > String response = restTemplate.postForObject(url, entity, String.class);
>> > --------------------------------------------------------------------------------------
>> > response says message cannot be accepted as it has unidentified field
>> >
>> > As the json getting posted has duplicate fields with different case: 
>> > aDocId, adocId where as I expected only aDocId as per my Event class.
>> >
>> > I could not change anything in the POJO as it is a auto generated class 
>> > based on swagger.
>> >
>> > I am using Spring boot. Seeking for help to resolve this scenario.
>>
>> The problem here is that capitalization of `aDocId` is problematic and
>> does not really match implicit name that getter/setter would produce.
>> Because of this, Jackson things there are 2 different properties (with
>> different casing).
>> This only affects the specific case of single-lower-case-letter.
>>
>> There are 2 ways to resolve this:
>>
>> 1. Move `@JsonProperty` annotation to getter or setter -- there is no
>> need to annotate Field, usually, and since it is private, it should be
>> ignore if not annotated
>> 2. Add duplicate of `@JsonProperty` on getter or setter -- this will
>> link Field and getter/setter Methods to make them be part of one
>> single logical propery
>>
>> I hope this helps,
>>
>> -+ Tatu +-
>
> --
> You received this message because you are subscribed to the Google Groups 
> "jackson-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jackson-user/bfcbb3f3-4956-4f8d-88c8-5fb2032feaf9o%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jackson-user/CAL4a10iO2Dbw%2BWYjLSD8s1F9NcRM%2BJvyRp6M489c-iFK3_yG9A%40mail.gmail.com.

Reply via email to