NANDAKUMAR THANGAVELU
NANDAKUMAR THANGAVELU

Reputation: 661

Jackson naming convention issue in serialization with uncommon getter method name

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.

Upvotes: 1

Views: 1197

Answers (1)

xingbin
xingbin

Reputation: 28289

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;
}

Upvotes: 2

Related Questions