java - Jackson JSON 架构日期

标签 java json jackson jsonschema

我想生成一个带有 java.util.Date 字段的类的 JSON 架构。 对于日期类型的字段,我得到:

“字段名称”:{ “类型”:“整数”, “格式”:“UTC_MILLISEC” }

我想要的是这样的:

“字段名称”:{“类型”:“字符串”,“格式”:“日期时间”}

我希望此配置对于所有 POJOS 都是全局的,而不仅仅是特定 POJO。 因此,对特定类的注释对我没有帮助。

谢谢!

最佳答案

这只是 the Dennis's answer 的一个示例证明 SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 实际上正在考虑 the Jackson schema generator .

public class JacksonSchema1 {

    public static class Bean {
        public String name;
        public Date date;
    }

    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
        mapper.acceptJsonFormatVisitor(mapper.constructType(Bean.class), visitor);
        JsonSchema jsonSchema = visitor.finalSchema();
        System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonSchema));
    }
}

输出:

{
  "type" : "object",
  "properties" : {
    "name" : {
      "type" : "string"
    },
    "date" : {
      "type" : "string",
      "format" : "DATE_TIME"
    }
  }
}

关于java - Jackson JSON 架构日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25367448/

相关文章:

java - 代码返回节点而不是子类的值

java - 将 JsonNode 读入预先存在的 POJO

java - jackson :如何忽略字段的数据类型不匹配

java - jackson 不承认存在的领域

java - 无法反序列化包含从 AMQP 消息传递收到的 LocalDate 的对象

java - 索引越界异常字符串 8

java - 在 Azure Eventhub 中,当使用 Java 中的 EventProcessorHost 接收消息时 @Override 出现错误

java - 尝试在 GAE 开发环境中使用 restFB 时出错

javascript - 解析JSON时出现无效字符错误

java - 如何检索 Jackson @JsonDeserialize 注解的类?