Джексон - Java bean в строку JSON: переменная верхнего регистра в JSON преобразуется в нижний регистр
Я преобразую Java-бин в строку JSON с помощью метода writeValueAsString ObjectMapper, где переменные верхнего регистра из Java-бина заменяются строчными в строке JSON. Реализована версия Jackson 2.7.4. Базовый образец бобов -
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);
}
}
Ранее мы использовали net.sf.json.JSON & JSONSerializer для преобразования Java-бина в JSON. И сгенерированная строка JSON имела такое же наименование, как и у Java bean-компонента. Из-за проблем с производительностью я хочу изменить это и реализовать Джексона.
Ограничения: мы не можем изменить соглашение об именах Java-бинов, так как эти бины взяты из более старого проекта, и у нас мало возможностей для изменения имен переменных в бине и даже добавления свойств json в каждый бин.
Я пробовал ниже код, но это не сработало
ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE);
Кроме того, я пробовал настраиваемую PropertyNamingStrategy, но не ясно по этому вопросу.
Отредактировано:
net.sf.json.JSON сгенерированная строка JSON, как указано ниже для вышеупомянутого компонента:
{"XId":11,"PNRNumber":"123456789","minPriced":[{"name":"JSON"},{"name":"simple"}]}
Джексон сгенерированная строка JSON, как указано ниже для вышеупомянутого компонента:
{"xid":11,"pnrnumber":"123456789","minPriced":[{"name":"JSON"},{"name":"Jackson"}]}
Как вы можете видеть, «XId» преобразуется в «xid» в Джексоне, а «PNRNumber» преобразуется в «pnrnumber» в Джексоне.
Есть ли какие-либо изменения конфигурации в Джексоне, чтобы избежать такой модификации. ИЛИ Как справиться с таким сценарием.