当前位置: 首页 > 知识库问答 >
问题:

在Vert.x中使用Jackson的JSON Java 8 LocalDateTime格式

强志学
2023-03-14

我试图从LocaLDateTime创建json对象,但由于某种原因,它创建json的方式如下:查找issueAt和expireAt键

json{“userid”:0,“deviceid”:0,“refreshtoken”:“93180548-23B3-4D1B-8B5B-A105B7CFF7F9”,“issuedat”:{“年份”:2021,“月份值”:10,“月份日”:27,“小时”:9,“分钟”:22,“秒”:31,“nano”:0,“月份”:“十月”,“星期日”:“星期三”,“年份日”:300,“年表”:{“ID”:“ISO”,“日历类型”:“ISO8601”}},“expiresat”:{“年份”:2021,“月份值”:10,“DayofMonth”:28,“小时”:9,“分钟”:22,“秒”:31,“纳米”:0,“月份”:“十月”,“星期”:“星期四”,“年”:301,“年表”:{“ID”:“ISO”,“日历类型”:“ISO8601”}}}

我希望它是这样的

批次:[0,0,29A1BF70-648E-4CB5-AEF8-5377CF702875,2021-10-26T12:36:10,2021-10-27T12:36:10]。

下面是创建2个日期的代码

    String randomString = UUID.randomUUID().toString();
    Instant myInstant1 = Instant.now().truncatedTo(ChronoUnit.SECONDS);
    LocalDateTime issuedAt = LocalDateTime.ofInstant(myInstant1, ZoneId.systemDefault());
    System.out.println("issued_at : " + issuedAt);
    LocalDateTime expiresAt = issuedAt.plusDays(1);
    System.out.println("expires_at: " + expiresAt.plusDays(1));
JsonObject json = new JsonObject()
                    .put("userID", userID)
                    .put("deviceID", deviceID)
                    .put("refreshToken", randomString)
                    .put("issuedAt", issuedAt)
                    .put("expiresAt", expiresAt);
                                    
                                
LOG.info("json {}", json.encode());

RefreshToken refreshTokenObj = json.mapTo(RefreshToken.class); //here I am trying to mapTo my class and I get the error
LOG.info("refreshTokenObj {}", refreshTokenObj);
public class RefreshToken {

private Integer id;
private Integer userID;
private Integer deviceID;
private String refreshToken;
private LocalDateTime issuedAt;
private LocalDateTime expiresAt;

共有1个答案

弓宏茂
2023-03-14

我不熟悉vert.x。但是根据我们在帖子中的讨论,我只是在mapto()之前添加了下面的两行代码,没有错误。

ObjectMapper objectMapper = DatabindCodec.mapper();
objectMapper.registerModule(new JavaTimeModule());

控制台输出:

RefreshToken{id=null,userid=0,deviceid=0,RefreshToken='9DA220CE-BC66-4561-B924-988C7F394F2D',issuedat=2021-10-27T17:21:28,expiresat=2021-10-28T17:21:28}

objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
 类似资料:
  • 我试图输出一个OffsetDateTime从我的Spring应用程序,并在我的application.properties这些属性: 但是,当返回日期时,其格式为 如何在Spring应用程序中正确配置日期格式?

  • Vert.x 是一个微服务开发框架,基于事件和异步,依托于全异步Java服务器Netty,并扩展了很多其他特性,以其轻量、高性能、支持多语言开发而备受开发者青睐,开发者可以通过它使用 JavaScript、Ruby、Groovy、Java、甚至是混合语言来编写应用。 概念 Vert.x是事件驱动的,其处理请求的高性能也是基于其事件机制。Vert.x的事件机制中有几个非常重要的概念:Event Lo

  • 在我的项目中,我使用Java中Vert.x的实现。到目前为止一切都很顺利。然而,目前我有问题执行一个动作的对象列表顺序。问题在于方法在Java中分别“reduce”和“sombining”结果。这将导致所有操作同时启动。实现顺序执行是可能的,可以在方法中看到这一点。 执行Easy时的输出: 和的输出与Java代码的easy方法相同。我正在寻找的是一种修复Java中reduce方法的方法,或者一种实

  • 本文向大家介绍何时在Java的Jackson中使用@ConstructorProperties批注?,包括了何时在Java的Jackson中使用@ConstructorProperties批注?的使用技巧和注意事项,需要的朋友参考一下 @ConstructorProperties注释是从java.bean小号包装,用于通过反序列化JSON到Java对象 注释构造。此注释从Jackson 2.7版本