小编Mar*_*ráš的帖子

如何让 REST 服务为 Java 8 (Local|Offset)DateTime 生成一个简单的字符串(使用 Swagger 时)?

问题:当我们的 REST 服务返回带有日期/日期时间字段的对象时,这些字段被编码为 JSON 格式的复杂结构:

    ...
    "createdTimestamp": {
        "offset": {
            "totalSeconds": 0,
            "id": "Z",
            "rules": {
                "fixedOffset": true,
                "transitionRules": [],
                "transitions": []
            }
        },
        "nano": 257353000,
        "hour": 16,
        "minute": 5,
        "second": 25,
        "month": "OCTOBER",
        "year": 2017,
        "dayOfMonth": 5,
        "dayOfWeek": "THURSDAY",
        "dayOfYear": 278,
        "monthValue": 10
    },
    ...
Run Code Online (Sandbox Code Playgroud)

我希望这些时态数据类型以“2017-10-05T16:05:25”等简单格式序列化为字符串。

该项目最初基于 Java 7 API 并java.util.Date在任何地方使用 - 并且有效。当我切换到 Java 8 并开始使用新java.time类时,除了将日期/时间对象序列化为 JSON 之外,一切正常。

我知道我可以java.util.Date再次使用该类型,但我更喜欢使用新的数据类型。

REST 服务使用 Swagger 定义并使用 Maven 构建。在swagger-codegen-maven-plugin使用时,具有以下配置:

  • 插件版本:2.2.3
  • 语: jaxrs-cxf-cdi
  • 日期库: java8

以下是其他相关库的版本(在 …

java json java-8 swagger swagger-codegen

5
推荐指数
1
解决办法
1755
查看次数

标签 统计

java ×1

java-8 ×1

json ×1

swagger ×1

swagger-codegen ×1