Я использую Spring 4 MVC с Jackson 2 для моей службы. Для одной из операций у меня есть объект запроса, у которого есть атрибут, где ведущее слово верблюда это только одна буква в длину:
private String aLogId;
Этот класс имеет соответственно названные геттеры и сеттеры:
public String getALogId() { return aLogId; }
public void setALogId(String aLogId) { this.aLogId = aLogId; }
Однако, когда я пытаюсь отправить запрос этой службе с использованием соответствующего свойства JSON:
{"aLogId":"This is a log id"}
Я получаю ответ 500 из структуры Spring, говорящий, что поле не распознано, и мой класс контроллера никогда не вызывается:
Не удалось прочитать JSON: нераспознанное поле "aLogId" (класс
Однако, когда я меняю "L" на нижний регистр, запрос десериализуется, как ожидалось, и мой класс контроллера попадает:
{"aLogId":"This is a log id"}
Почему Джексон ожидает, что "L" будет нижним регистром, когда он, очевидно, является вторым словом в условном случае для верблюда для атрибута и предназначен для того, чтобы быть в верхнем регистре? Это потому, что первое слово длится только одна буква?
В объекте запроса есть другие атрибуты, где первое слово содержит более одной буквы, а те, которые приписываются, не сталкиваются с этой же проблемой с несоответствием в случае.