#java #datetime
#Ява #дата и время
Вопрос:
У меня есть строковое значение {"date":{"year":2021,"month":11,"day":11},"time":{"hour":10,"minute":30,"second":45,"nano":222000000}}
Есть ли какая-либо доступная функция или эффективный способ преобразовать эту строку JSON в объект 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()); }
}
Комментарии:
1. Используйте зависимость от ломбока и gson
Ответ №2:
Создайте новый объект модели Java, используя ObjectMapper, преобразующий строку json в объект java.
Комментарии:
1. чтобы улучшить ответ, пожалуйста, приведите пример кода