这里面方法的返回值就是反序列化后的最终内容。方法内部你可以使用parser.getText()来获取到当前要处理的内容。你可以随便折腾里面的数据,只需要最后返回你想要的Date就可以了。
另外在制作基于Jackson Json的Service时想使用泛型的思想来写一个接口,最终目的就是希望方法能随着参数类型不同,返回值的类型也随之不同。以前很少写泛型的方法,这个问题虽然基础,但是难住了我,经过查看Jackson Json的源代码,我得到了启示,像下面这样写就OK了:
public <T> T strToObj(String jsonStr, Class<T> clazz)
这样写就可以了。假设我有一个Result类型的对象需要反序列化,当前已经有了一个json字符串jsonStr,那么我只需要指定第二个参数clazz就可以直接得到Result类型的对象了:
这样就不用在方法前加入(Result)类型强制转换了。
那么,为何Java开发人员不选择Jackson而放弃其竞争产品呢?
以上功能的简短列表其实不过是Jackson功能的冰山一角。 的确,这三个常见功能是重要的,但某种程度上也仅是最基本的东西,起码,JSON处理器应被作为值得考虑的工具使用。除此之外,还有很多很多功能应该提供,而这也正是Jackson具备的能力。
因此,让我们来看看7个样例 -- 吉祥的数字 -- "杀手锏" --Jackson近年来领先竞争对手的几点,依据先后顺序介绍(始于1.0版,最新的一个特性是1.6版加入的)。
1.多处理模式,且可很好协作
从基本开始,有多种方法来使用和生产JSON数据,尽管多数JSON包仅提供单一的处理方式,但却有三种互补的JSON处理方式(详细解释见:There are Tree ways...):