我正在开发一个 Java servlet,我需要将一个类序列化和反序列化为 JSON 并返回。为此,我正在使用 Genson 库,但遇到了障碍。
Genson 无法反序列化 Date 类 (java.sql.Date) 的实例
我尝试设置自定义日期格式化程序,但它们似乎不会影响反序列化。
我还尝试使用构建器调用 withConverter() 插入新转换器,但我无法弄清楚这些参数是如何工作的。
这是我目前的建设者电话
Genson genson = builder.setSkipNull(true).create();
我正在序列化的类有一个 Date 类型的字段
private Date introDate;
这是我尝试反序列化生成的 JSON 时出现的堆栈跟踪片段
Caused by: com.owlike.genson.JsonBindingException: Could not access value of property named 'hours' using accessor public int java.sql.Date.getHours() from class java.sql.Date
at com.owlike.genson.reflect.PropertyAccessor.couldNotAccess(PropertyAccessor.java:40)
at com.owlike.genson.reflect.PropertyAccessor$MethodAccessor.access(PropertyAccessor.java:70)
at com.owlike.genson.reflect.PropertyAccessor.serialize(PropertyAccessor.java:24)
at com.owlike.genson.reflect.BeanDescriptor.serialize(BeanDescriptor.java:92)
at com.owlike.genson.convert.NullConverterFactory$NullConverterWrapper.serialize(NullConverterFactory.java:69)
at com.owlike.genson.reflect.PropertyAccessor.serialize(PropertyAccessor.java:27)
... 38 more
这里的问题是像 getHours() 这样的方法已被弃用,因此调用它们会产生 IllegalArgumentException。我暂时不知道如何解决这个问题。