【问题标题】:Deserialize date attribute of json into LocalDate将json的日期属性反序列化为LocalDate
【发布时间】:2018-12-13 12:04:00
【问题描述】:

我正在尝试使用 Gson 对格式为“2018-05-27”的 json 中的日期属性进行反序列化。我希望反序列化后日期为 LocalDate 格式。

对于 json 输入:

{ “身份证”:1, “名称”:“测试”, “开始日期”:“2018-01-01”, “结束日期”:“2018-01-05”, }

startDate 和 endDate 出现错误:

java.lang.IllegalStateException: 应为 BEGIN_OBJECT 但为 STRING

【问题讨论】:

标签: json gson deserialization localdate


【解决方案1】:

我们可以这样做:

private static final Gson gson = new GsonBuilder().registerTypeAdapter(LocalDate.class, new JsonDeserializer<LocalDate>() {
            @Override
            public LocalDate deserialize(JsonElement json, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
                return LocalDate.parse(json.getAsJsonPrimitive().getAsString());
            }
        }).create();

然后

YourClassName yourClassObject = gson.fromJson(msg, YourClassName.class);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    相关资源
    最近更新 更多