дата искажена при отправке в формате json

Я пытаюсь отправить json на сервер и получаю следующее исключение:

Разрешение исключения из обработчика [public void com.hexgen.api.facade.HexgenWebAPI.createInvestAdjust(com.hexgen.ro.request.InvestAdjustRO,boolean)]: org.springframework.http.converter.HttpMessageNotReadableException: не удалось прочитать JSON: недопустимый формат : «09.01.2012» имеет неверный формат в «/09/2012» (через цепочку ссылок: com.hexgen.ro.request.InvestAdjustRO["transDate"]); вложенным исключением является org.codehaus.jackson.map.JsonMappingException: недопустимый формат: «01/09/2012» имеет неверный формат в «/09/2012» (через цепочку ссылок: com.hexgen.ro.request.InvestAdjustRO["transDate" ])

и это мой JSON:

adjustmentType: "UAMORT"
custodian: "DEUTSCHE"
debitCredit: "CREDIT"
investCategory: "FVTPL"
isUploaded: false
portfolio: "HEXGENFUND"
portfolioCcy: "INR"
recRemarks: "Test"
transDate: "01/09/2012"
transRef: "OP120010020000017"

это мой java-код с геттером и сеттером:

private String transId;
    private String portfolio;
    private String portfolioCcy;
    private String transRef;
    private String adjustmentType;
    private LocalDate transDate;
    private String debitCredit;
    private String investCategory;
    private String custodian;
    private String recRemarks;
    private RecStatus recStatus;
    private Boolean isUploaded=true;

в чем проблема и почему я получаю

вложенным исключением является org.codehaus.jackson.map.JsonMappingException: недопустимый формат: «01/09/2012» имеет неверный формат в «/09/2012» (через цепочку ссылок: com.hexgen.ro.request.InvestAdjustRO["transDate" ])

Благодарность


person Java Questions    schedule 13.08.2013    source источник
comment
JSON не имеет типа данных даты, и ваше сообщение об ошибке, похоже, жалуется на формат даты. Какой точный формат даты ожидает сервер?   -  person Álvaro González    schedule 13.08.2013
comment
я не дал никакого формата   -  person Java Questions    schedule 13.08.2013
comment
Вы имеете в виду, что используете недокументированный веб-сервис?   -  person Álvaro González    schedule 13.08.2013
comment
это может помочь: stackoverflow.com/questions/8746084/string-to-localdate   -  person Joum    schedule 13.08.2013
comment
Я думаю, что это проблема Джексона, а не проблема JSON.   -  person Hot Licks    schedule 13.08.2013


Ответы (1)


Попробуйте использовать эту аннотацию, чтобы указать формат даты:

private String transId;
private String portfolio;
private String portfolioCcy;
private String transRef;
private String adjustmentType;

@DateTimeFormat(pattern = "dd/MM/yyyy")
private LocalDate transDate;
private String debitCredit;
private String investCategory;
private String custodian;
private String recRemarks;
private RecStatus recStatus;
private Boolean isUploaded=true;
person Amin Abu-Taleb    schedule 13.08.2013