How do I deserialize timestamps that are in seconds with Jackson?

Drew Stephens

I've got some JSON that has timestamps in seconds (i.e. a Unix timestamp):

{"foo":"bar","timestamp":1386280997}

Asking Jackson to deserialize this into an object with a DateTime field for the timestamp results in 1970-01-17T01:11:25.983Z, a time shortly after the epoch because Jackson is assuming it to be in milliseconds. Aside from ripping apart the JSON and adding some zeros, how might I get Jackson to understand the seconds timestamp?

Drew Stephens

I wrote a custom deserializer to handle timestamps in seconds (Groovy syntax).

class UnixTimestampDeserializer extends JsonDeserializer<DateTime> {
    Logger logger = LoggerFactory.getLogger(UnixTimestampDeserializer.class)

    @Override
    DateTime deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
        String timestamp = jp.getText().trim()

        try {
            return new DateTime(Long.valueOf(timestamp + '000'))
        } catch (NumberFormatException e) {
            logger.warn('Unable to deserialize timestamp: ' + timestamp, e)
            return null
        }
    }
}

And then I annotated my POGO to use that for the timestamp:

class TimestampThing {
    @JsonDeserialize(using = UnixTimestampDeserializer.class)
    DateTime timestamp

    @JsonCreator
    public TimestampThing(@JsonProperty('timestamp') DateTime timestamp) {
        this.timestamp = timestamp
    }
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

How do I deserialize JSON into a List<SomeType> with Kotlin + Jackson

From Dev

How do I deserialize an array with indexes using jackson

From Dev

How do I deserialize object variables using Jackson?

From Dev

How do I deserialize an array with indexes using jackson

From Dev

How do I get subsequent timestamps accurate upto 5 micro seconds in android

From Dev

How do I configure Jackson ObjectMapper to deserialize all fields of type Foo into instances of SubclassOfFoo?

From Dev

How do I tell robocopy to ignore timestamps?

From Dev

How can I get Jackson to deserialize into my own Array implementation

From Dev

What version of Hive do I need to have timestamps with more than 6 decimal places in the fractional seconds?

From Dev

How to deserialize generic classes with Jackson?

From Dev

How to deserialize abstract classes in jackson

From Dev

How to deserialize empty strings with jackson?

From Dev

How to deserialize abstract classes in jackson

From Dev

How do I deserialize json into PropertyType?

From Dev

How do I deserialize Json with modifying the structure?

From Dev

How do I serialize & deserialize CSV properly?

From Dev

How do I Deserialize Just a String with Namespace?

From Dev

How do I deserialize a kafka message to a POJO?

From Dev

How do I deserialize a Player's inventory?

From Dev

How do I serialize & deserialize CSV properly?

From Dev

How do I deserialize a Json object?

From Dev

How to calculate seconds between two timestamps in Impala?

From Java

How do I convert seconds to hours, minutes and seconds?

From Dev

How do I display a time to 0.01 seconds?

From Dev

How do I change milliseconds to seconds in python?

From Dev

How do I change milliseconds to seconds in python?

From Dev

How do I get date range from timestamps?

From Dev

How do I loop through objects and categorize by timestamps in Javascript?

From Dev

How do I make Rails log timestamps in UTC timezone?

Related Related

  1. 1

    How do I deserialize JSON into a List<SomeType> with Kotlin + Jackson

  2. 2

    How do I deserialize an array with indexes using jackson

  3. 3

    How do I deserialize object variables using Jackson?

  4. 4

    How do I deserialize an array with indexes using jackson

  5. 5

    How do I get subsequent timestamps accurate upto 5 micro seconds in android

  6. 6

    How do I configure Jackson ObjectMapper to deserialize all fields of type Foo into instances of SubclassOfFoo?

  7. 7

    How do I tell robocopy to ignore timestamps?

  8. 8

    How can I get Jackson to deserialize into my own Array implementation

  9. 9

    What version of Hive do I need to have timestamps with more than 6 decimal places in the fractional seconds?

  10. 10

    How to deserialize generic classes with Jackson?

  11. 11

    How to deserialize abstract classes in jackson

  12. 12

    How to deserialize empty strings with jackson?

  13. 13

    How to deserialize abstract classes in jackson

  14. 14

    How do I deserialize json into PropertyType?

  15. 15

    How do I deserialize Json with modifying the structure?

  16. 16

    How do I serialize & deserialize CSV properly?

  17. 17

    How do I Deserialize Just a String with Namespace?

  18. 18

    How do I deserialize a kafka message to a POJO?

  19. 19

    How do I deserialize a Player's inventory?

  20. 20

    How do I serialize & deserialize CSV properly?

  21. 21

    How do I deserialize a Json object?

  22. 22

    How to calculate seconds between two timestamps in Impala?

  23. 23

    How do I convert seconds to hours, minutes and seconds?

  24. 24

    How do I display a time to 0.01 seconds?

  25. 25

    How do I change milliseconds to seconds in python?

  26. 26

    How do I change milliseconds to seconds in python?

  27. 27

    How do I get date range from timestamps?

  28. 28

    How do I loop through objects and categorize by timestamps in Javascript?

  29. 29

    How do I make Rails log timestamps in UTC timezone?

HotTag

Archive