googleendpoint-java.sql.Timestamp-JSON

googleendpoint-java.sql.Timestamp-JSON,java,google-app-engine,google-cloud-endpoints,google-cloud-platform,Java,Google App Engine,Google Cloud Endpoints,Google Cloud Platform,如何从前端将java.sql.Timestamp作为JSON传递? 默认情况下,我在API中尝试过像2015-09-29T12:30:00那样给予。 它不起作用 另外,如果有人知道如何在内置java类中使用@apitTransformer。或者是否有在属性级别而不是POJO类级别使用此注释的选项 答复: Timestamp timestamp = new Timestamp(new Date().getTime()); ObjectMapper mapper = new Obje

如何从前端将java.sql.Timestamp作为JSON传递? 默认情况下,我在API中尝试过像2015-09-29T12:30:00那样给予。 它不起作用

另外,如果有人知道如何在内置java类中使用@apitTransformer。或者是否有在属性级别而不是POJO类级别使用此注释的选项

答复:

    Timestamp timestamp = new Timestamp(new Date().getTime());
    ObjectMapper mapper = new ObjectMapper();
    try {
        String jacksonDate = mapper.writeValueAsString(timestamp);
        System.out.println("JSON Timestamp: "+jacksonDate);
        System.out.println("JAVA Timestamp: "+mapper.readValue(jacksonDate, Timestamp.class));
    } catch (IOException e) {
        e.printStackTrace();
    }
输出:
JSON时间戳:1443772585286
JAVA时间戳:2015-10-02 11:56:25.286


即使它接受:yyyy-MM-DD'T'HH:MM:ss

我建议您考虑做相反的事情

假设您从数据库获取值到JavaBean(POJO),并将它们序列化为JSON对象。打印出来,尤其是时间戳值

然后使用与快捷答案相同的格式值

另一方面,在Jackson中,我知道java.sql.Date接受时间度量的“长”值。时间戳可以使用相同的方法。“以毫秒为单位的时间”是一个很长的值

另一方面,如果您希望在Rest系统中处理类型的编组和解编组,那么您可以检查这一点


非常感谢!GAE使用Jackson库作为JSON解析器。我尝试在独立程序中转换JSON和JSON之间的时间戳,并找到了Jackson期望的格式。