2012-05-28 56 views
1

我试图有用地回答this question,并指出提问者会想通过reviver将.Net风格的JSON日期("/Date(######)\/")转换为日期,但是looking at the documentation我不清楚Android支持该概念“reviver”。可以?Android的JSON解析器支持revivers吗?

+0

至少对'org.json'解析器来说,由于“reviver”概念看起来好像不在JSON规范中,所以我期望答案是“否”。 API Level 11中的JSONReader可能提供更多功能。 – CommonsWare

+0

@CommonsWare:关于'JSONReader'的那一点是作为答案的边界。 ;-)在我看来,你可以用JSONReader来制作一个JSON解析器,它可以很容易地支持*一种通用恢复的形式*(做一个合适的reviver会更好。)另一个JSON规范(比如它)只是关于符号。但是Crockford的JSON解析器已经有了多年的reviver概念,并且[ECMAScript5规范](http://ecma-international.org/ecma-262/5.1/#sec-15.12.2)中的Crockford灵感来自于它。 。 –

+0

reviver概念当然很酷。但是,如果'json.org'没有引用它,我怀疑他们自己的参考实现支持它。谷歌的快速搜索表明GSON(JSONReader的基础)和Jackson(可能是Android上最流行的第三方JSON解析器)似乎都支持它,尽管我的扫描非常随意。因此,reviver概念可能从未将其引入常见的Java实现中。我将这些信息作为评论提供,而不是回答,因为我只是轻率地进行了猜测 - 我从来没有用过自己的反应。 – CommonsWare

回答

0

答案看起来是:,不是直接。但,你可以做到这一点(或它的一种形式)没有太多的工作:

没有,在JSONObjectJSONArrayJSONTokenerJSONReader等,似乎并不支持这一概念直接

,因为你很可能支持恢复(如在给定的格式字符串的相应Date对象上下文替代)通过JSONReader,甚至毫不费力的简单形式(只有一个更多的工作)创建一个完整的reviver-enabled解串器(完成正确的事情顺序等)。所以不是内置的,而不是从头开始的。