Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringMVC-JSON-将日历解析为Java对象_Java_Json_Spring_Date_Jackson - Fatal编程技术网

SpringMVC-JSON-将日历解析为Java对象

SpringMVC-JSON-将日历解析为Java对象,java,json,spring,date,jackson,Java,Json,Spring,Date,Jackson,如何配置Jackson解析日历的方式?是否仍有设置格式的方法 我正在使用 @RequestMapping(value = "/assign", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public Form5398Obj arriveTrip(@PathVariable String siteId, @Reques

如何配置Jackson解析日历的方式?是否仍有设置格式的方法

我正在使用

@RequestMapping(value = "/assign", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public Form5398Obj arriveTrip(@PathVariable String siteId,
                @RequestBody ErrorMsg anError) throws Exception {

        System.out.println(anError.toString());

    }
我注意到出现错误400,因为ErrorMsg中的日历字段未正确转换。如果我把它从柱子上取下来,它就能正常工作

在一次搜索中,我注意到有一些标准表单对我有效 “yyyy-MM-dd'T'HH:MM:ss.SSSZ”,“yyyy-MM-dd'T'HH:MM:ss.SSS'Z'”,“EEE,dd-MM-yyyy-HH:MM:ss-zzz”,“yyyy-MM-dd”

是否有明确的方法告诉它以某种方式进行解析?

查看常见问题解答,了解Jackson 2.0的解析方法

有关序列化的常见问题解答中的示例:

独立于此,您可以编写自己的序列化程序类,并使用
@JsonDeSerialize(使用MyDeSerializer.class)

公共类MyJsonDateDeserializer扩展了JsonDeserializer
{
@凌驾
公共日期反序列化(JsonParser JsonParser,
反序列化上下文(DeserializationContext)引发IOException、JsonProcessingException{
SimpleDataFormat f=新的SimpleDataFormat(“dd.MM.yyyy”);//德语日期
字符串d=jsonparser.getText();
试一试{
返回f.parse(d);
}捕获(解析异常){
抛出新的运行时异常(e);
}
}
}

…即使尝试了几次,我还是不明白你想说什么。你的句子没有多大意义。对不起,使用
@JsonFormat
对我来说非常有效。谢谢!我以为只有在序列化为JSON时才使用注释。
public class DateStuff {
  @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd,HH:00", timezone="CET")
  public Date creationTime;
}
public class MyJsonDateDeserializer extends JsonDeserializer<Date>
{
    @Override
    public Date deserialize(JsonParser jsonparser,
            DeserializationContext deserializationcontext) throws IOException, JsonProcessingException {

        SimpleDateFormat f = new SimpleDateFormat("dd.MM.yyyy"); // german date
        String d = jsonparser.getText();
        try {
            return f.parse(d);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }

    }

}