Jackson - Java bean para JSON: variável maiúscula convertida em minúscula em JSON
Estou convertendo o bean Java para a string JSON usando o método writeValueAsString do ObjectMapper em que variáveis em maiúsculas do bean em Java estão sendo alteradas para minúsculas na string JSON. Versão 2.7.4 de Jackson implementada. Amostra de feijão base -
public class BaseBean {
private static final long serialVersionUID = 3947489072259877540L;
private int _iXId;
private String _sPNR;
private ArrayList _alMinPriced = new ArrayList<TermBean>();
public int getXId() {
return _iXId;
}
public void setXId(int id) {
_iXId = id;
}
public String getPNRNumber() {
return _sPNR;
}
public void setPNRNumber(String _spnr) {
_sPNR = _spnr;
}
public ArrayList getMinPriced() {
return _alMinPriced;
}
public void setMinPriced(ArrayList minPriced) {
_alMinPriced = minPriced;
}
public void setMinPriced(TermBean bnTerm) {
_alMinPriced.add(bnTerm);
}
}
Anteriormente, estávamos usando o net.sf.json.JSON & JSONSerializer para conversão de Java bean em JSON. E a string JSON gerada estava com nomes semelhantes aos do Java bean. Devido a um problema de desempenho, desejo alterar isso e implementar Jackson.
Restrições: não podemos alterar a convenção de nomenclatura do bean Java, pois esses beans são de projetos mais antigos e há pouco escopo para alterar os nomes de variáveis no bean e até mesmo adicionar propriedades json em cada bean.
Eu tentei o código abaixo, mas isso não funcionou
ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE);
Além disso, tentei PropertyNamingStrategy personalizado, mas não estou claro sobre isso.
Editado:
net.sf.json.JSON string JSON gerada conforme mencionado abaixo para o bean acima:
{"XId":11,"PNRNumber":"123456789","minPriced":[{"name":"JSON"},{"name":"simple"}]}
Jackson string JSON gerada conforme mencionado abaixo para o bean acima:
{"xid":11,"pnrnumber":"123456789","minPriced":[{"name":"JSON"},{"name":"Jackson"}]}
Como você pode ver, "XId" foi convertido em "xid" em jackson e "PNRNumber" convertido em "pnrnumber" em jackson.
Existe alguma alteração na configuração disponível em Jackson para evitar essa modificação. OU Como lidar com esse cenário.