From cd3c2de6968f0046be1ac4cc7475627ebefbcf64 Mon Sep 17 00:00:00 2001 From: "shaojin.wensj" Date: Mon, 2 May 2022 16:47:11 +0800 Subject: [PATCH] improved jdk8 java.time support --- .../fastjson/parser/deserializer/Jdk8DateCodec.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alibaba/fastjson/parser/deserializer/Jdk8DateCodec.java b/src/main/java/com/alibaba/fastjson/parser/deserializer/Jdk8DateCodec.java index f5cab62355..b6644343a0 100644 --- a/src/main/java/com/alibaba/fastjson/parser/deserializer/Jdk8DateCodec.java +++ b/src/main/java/com/alibaba/fastjson/parser/deserializer/Jdk8DateCodec.java @@ -174,7 +174,6 @@ public T deserialze(DefaultJSONParser parser, Type type, Object fieldName, S return (T) period; } else if (type == Duration.class) { Duration duration = Duration.parse(text); - return (T) duration; } else if (type == Instant.class) { boolean digit = true; @@ -249,6 +248,12 @@ public T deserialze(DefaultJSONParser parser, Type type, Object fieldName, S return (T) Instant.ofEpochSecond( TypeUtils.longExtractValue((Number) epochSecond)); } + } else if (type == Duration.class) { + Long seconds = object.getLong("seconds"); + if (seconds != null) { + long nanos = object.getLongValue("nano"); + return (T) Duration.ofSeconds(seconds, nanos); + } } } else { throw new UnsupportedOperationException();