1

New to java and spring boot.

While trying to serialize the following class,

public class ActionItems {

private String APpID; 

public String getAPpID() {
    return APpID;
}

public void setAPpID(String aPpID) {
    APpID = aPpID;
}

// other fields
}

got the json string as

{
"appID": null,     
}

Whilst, cross checking the getter name with decapitilize(), it is matching with the field name.

Introspector.decapitalize("APpID") - gives "APpID"

Is jackson using a different set of rules and methods when generating the property name from the getter method?

PS: I am aware that, variable name should begin with small case. While going through the java beans naming convention spec got this question.

I am using jackson 2.9.3v.

PS: As per the link PropertyNamingStrategy, it should have produced APpID instead of appId right?

Could someone provide some input here?

Thanks.

NANDAKUMAR THANGAVELU
  • 611
  • 3
  • 15
  • 34

1 Answers1

2

In Jackson, you can custom PropertyNamingStrategy, and

In absence of a registered custom strategy, default Java property naming strategy is used, which leaves field names as is, and removes set/get/is prefix from methods (as well as lower-cases initial sequence of capitalized characters).

Also, you can custom a property name like:

@JsonProperty("APpID") // produce {"APpID":"s"}
public String getAPpID() {
    return APpID;
}
xingbin
  • 27,410
  • 9
  • 53
  • 103