尝试将日期字符串分配给架构中的字段时,出现“string:format=date-time 不是类 java.util.String 的有效 FormattedjsonType”

问题描述 投票:0回答:1

`我有一个这样的字段架构:

"StartDate":{ "type":"string", "format":"date-time" }

映射器如下:

"StartDate":{ "path": "policy.startDate.shortformat" }

Date.shortFormat 将给出值为“05/09/2024”,其类型为字符串。 但当尝试将日期字符串分配给架构中的字段时,我仍然收到 string:format=date-time is not a valid FormattedjsonType for class java.util.String 。

我尝试对架构进行更改,如下所示:

  1. `"StartDate":{
    "type":"string"
     }`
    
  2.  `"StartDate":{
     "type":"string",
     "format":"date"
      } `
    

但是它们都不起作用。

任何帮助将不胜感激。`

jsonschema mapper guidewire
1个回答
0
投票

我了解您正在尝试使用特定的短日期格式,并且只对日期部分感兴趣。 Guidewire 自己的类型以及源自开放 API 规范的 Swagger 类型列在文档中(需要登录)。您可以简单地使用

date-time
作为其有效的 Swagger JSON 数据类型,而不是使用
date

schema.json

"StartDate":{
 "type":"string",
 "format":"date"
}

这会将日期格式设置为 2024-05-09,即“yyyy-MM-dd”。请注意,这是针对 RFC 3339 - 第 5.6 节中指定的日期的 OpenAPI 标准。

因此,虽然您可以使用 MM/dd/yyyy 或任何其他格式,但它不符合 Open API 和 RFC 规范,在这种情况下您绝对不应该将格式指定为

date
date-time
。您可以将类型设置为
string
并在 Rest Handler 类中自行进行格式化。这样您的
ShortFormat
属性就可以在处理程序中工作,并且您将保持符合 OpenApi 规范的日期。

© www.soinside.com 2019 - 2024. All rights reserved.