Spring @RequestBody覆盖日期

时间:2016-05-15 21:31:50

标签: java json spring hibernate jackson

我正在尝试让requestBody自动映射到一个类,但是我因为日期而被拒绝的对象存在问题

Spring Version 4.1 - 看来spring正在使用gson而不是jackson

您可以帮助解决以下问题吗

  1. 如何指定哪个解析器弹簧用于映射?
  2. 如何使用注释xml覆盖该解析器的设置?
  3. 还有其他有用的信息吗?
  4. 我尝试过这样的事情,但他们似乎没有工作

    @Type(type="timestamp")
    //@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm a z")
    //@JsonDeserialize(using = DateDeserializer.class)
    //@JsonSerialize(using = CustomDateSerializer.class)
    @Column(name = "date")
    private Date date;
    

    我也尝试手动设置gson解析器以使用特定的日期格式,但是我似乎无法弄清楚如何使用弹簧正在使用的格式

     gsonBuilder.setDateFormat("MM-dd-yyyy");
    
    "org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: 05/17/2016; nested exception is com.google.gson.JsonSyntaxException: 05/17/2016"
    
    @RequestMapping(value = "/saveIdea", method = RequestMethod.POST)
    public @ResponseBody ResponseEntity saveIdea(@RequestBody Idea idea) throws IOException {}
    

    这是我试图覆盖它的一种方式,它似乎没有使用这个

    @EnableWebMvc
    @Configuration
    public class WebConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            //converters.add(new ExtendedGsonHttpMessageConverter());
            GsonHttpMessageConverter msgConverter = new GsonHttpMessageConverter();
            Gson gson = new GsonBuilder().setPrettyPrinting().create(); 
    
            msgConverter.setGson(gson);
            converters.add(msgConverter);
        }
    }
    

0 个答案:

没有答案