Java jsonschema和日期类型

Java jsonschema和日期类型,java,json,pojo,jsonschema,Java,Json,Pojo,Jsonschema,我刚刚开始学习jsonschema和下面的一个示例 “在Java项目中使用jsonschema2pojo(嵌入式)” 在里面 记住这里列出的jsonschema的数据类型 我的模式对象可以描述为 { "$schema": "http://json-schema.org/draft-04/schema", "description": "Document", "type": "object", "properties": { "disp

我刚刚开始学习jsonschema和下面的一个示例 “在Java项目中使用jsonschema2pojo(嵌入式)” 在里面

记住这里列出的jsonschema的数据类型

我的模式对象可以描述为

{    
    "$schema": "http://json-schema.org/draft-04/schema",
    "description": "Document",
    "type": "object",

    "properties": {
        "displayDate": { "type": "date" },
        "displayName": { "type": "string" }
    }
}
不幸的是,生成的Pojo对象将被删除

package com.example;

public interface Document {

   java.lang.Object getDisplayDate();

   void setDisplayDate(java.lang.Object arg0);

   java.lang.String getDisplayName();

   void setDisplayName(java.lang.String arg0);

}

具有类型对象的成员“displayDate”,而不是预期的日期。为什么?

日期
不是
类型
的有效值<代码>显示日期应定义为

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

我不知道jsonschema2pojo是否会像您希望的那样将其转换为日期对象,但当遇到
type

的无效值时,它似乎默认为object,而不是抛出错误。根据最新的jsonschema2pojo文档,对于type
Date
,您需要执行以下操作:-

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

在生成的POJO中,属性的类型将是
Date
object

我觉得它应该是Date。是的,但是为什么会出现对象?如果使用
“type”:“object”,“javaType”:“java.util.Date
而不是
“type”:“Date”
,结果是:线程中出现异常“main”“java.lang.NoClassDefFoundError:org.jsonschema2pojo.rules.ObjectRule.createClass(ObjectRule.java:235)org.jsonschema2pojo.rules.ObjectRule.apply(ObjectRule.java:99)org.jsonschema2pojo.rules.ObjectRule.apply(ObjectRule.java:66)的japa/parser/ParseException是的,这是向前迈出的一步,因为替换了“displayDate”:{“type”:“date”},使用“displayDate”:{“type”:“string”,“format”:“date”},结果是:
线程“main”中的代码异常java.lang.NoClassDefFoundError:org/joda/time/LocalDate位于org.jsonschema2pojo.rules.FormatRule.getDateOnlyType(FormatRule.java:135)(…)原因:java.lang.ClassNotFoundException:org.joda.time.LocalDate位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
OK,您的解决方案是正确的。只需要将joda-time-2.0.jar添加到buildpath,并在编译到classpath时添加。谢谢有人能解释我为什么被否决吗。我的回答完全正确。文件在这里供任何人参考