Я пытаюсь преобразовать JSON в объект Java с помощью платформы Play. У меня нет простого управления входным JSON, который содержит тире в именах.Преобразование из JSON с помощью Jackson Annotations
{ "field-name": "value" }
В результате я не могу создать объект Java со стандартным отображением JSON. У меня есть класс, который выглядит следующим образом:
import com.fasterxml.jackson.annotation.JsonProperty;
public class Data {
@JsonProperty("field-name")
public String fieldName;
}
Я знаю, что Play 2.4 uses Jackson и У меня есть модульный тест, который способен заполнить объект из JSON, используя по умолчанию Джексон ObjectMapper
.
JSON является органом запроса POST, и я пытаюсь использовать его как это:
Form<Data> form = Form.form(Data.class).bindFromRequest();
Если я печатаю form
, я могу, что поле данных заполняется с ожидаемыми значениями. Однако, когда я делаю form.get()
, возвращаемое значение имеет нулевое поле. (В фактическом коде больше полей, которые являются строками или длинными. Все они равны нулю или 0.)
Я пытаюсь настроить десериализацию JSON не так? Или я делаю что-то еще неправильно?