【问题标题】:Convert datetime object in json into java DateTime object将json中的datetime对象转换为java DateTime对象
【发布时间】:2021-11-30 09:47:26
【问题描述】:

我有字符串值{"date":{"year":2021,"month":11,"day":11},"time":{"hour":10,"minute":30,"second":45,"nano":222000000}}

是否有任何可用的函数或有效的方法将此 JSON 字符串转换为 Java DateTime 对象,而不是一一读取字段并构建我的对象?

谢谢

【问题讨论】:

    标签: java datetime


    【解决方案1】:

    公共类应用程序{

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class DateC1 {
        private Integer year;
        private Integer month;
        private Integer day;
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Root {
        private DateC1 date;
        private Time time;
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Time {
        private Integer hour;
        private Integer minute;
        private Integer second;
        private Integer nano;
    
    }
    
    private static final String DATE_JSON_STRING =
            "{\"date\":{\"year\":2021,\"month\":11,\"day\":11},\"time\":{\"hour\":10,\"minute\":30,\"second\":45,\"nano\":222000000}}";
    
    public static void main(String[] args) {
    
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        DateC1 dateC1 = gson.fromJson(DATE_JSON_STRING, DateC1.class);
        System.out.println(dateC1.toString());
    
    }
    

    }

    【讨论】:

    • 使用 lombok & gson 依赖
    【解决方案2】:

    创建一个新的 Java 模型对象,使用 ObjectMapper 将 json 字符串转换为 java 对象。

    【讨论】:

    • 为改进答案,请提供代码示例
    猜你喜欢
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多