1

我有一个球衣网络服务,它接受发布数据并将其(使用杰克逊)映射到一个看起来像的数据结构

public class MyObject {   
   String name
   Object dateOrPrimitive    
}

在调用 Web 服务的 javascript 客户端上,它可以发送一个可以采用以下任一形式的对象

{ name : "Jeff", dateOrPrimitive : "someOtherString" } 
{ name : "Jeff", dateOrPrimitive : new Date() } 

如果dateOrPrimitive字段中有日期,则将其反序列化为日期的字符串表示形式。但是我想做的是将它反序列化为一个日期,如果它是一个有效的日期字符串。

我编写了一个自定义反序列化器,它检查值是否是有效日期,如果是则返回日期,否则返回原语,但我想知道是否已经有内置的方法来执行此操作。

4

1 回答 1

3

不,杰克逊没有这样的东西。您的自定义反序列化器是解决此问题的方法。Personnaly 我会有两个不同的属性,一个是 Date,另一个是原语,但我猜你无法控制 Json 的格式。

于 2013-04-04T14:36:49.837 回答