Google Endpoint - java.sql.Timestamp - JSON

时间:2015-09-28 22:07:06

标签: java google-app-engine google-cloud-endpoints google-cloud-platform

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

另外,如果有人知道,如何将@ApiTransformer用于内置java类。或者可以选择在属性级别而不是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

1 个答案:

答案 0 :(得分:0)

我建议你考虑做相反的事情。

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

然后使用相同的格式值作为快捷答案。

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

另一方面,如果您在Rest系统中寻找处理编组和解组类型,您可以查看它。

http://www.developerscrappad.com/2308/java/java-ee/rest-jax-rs/java-rest-jax-rs-2-0-how-to-handle-date-time-and-timestamp-data-types/