Jackson和Gson是否直接实现了标准JSR-353?

5f0d552i  于 2022-11-06  发布在  其他
关注(0)|答案(3)|浏览(186)

我在网上找不到我问题的答案(也许我搜索得不够好,因为我还是个新手)。
有人能告诉我JacksonGson是否实现了标准的JSR 353: Java™ API for JSON Processing吗?我想使用标准代码编写。

ijxebb2r

ijxebb2r1#

This link有回复(显然是Jackson的创始人),它实质上说Jackson没有实现JSR:
回复由Tatu Saloranta于2014年1月26日下午8:21
我不是JSR-353的忠实粉丝(我认为它是一个大失败),除非发生一些极端的事情,Jackson核心不会实现JSR-353。使用它没有数据绑定的好处;这是因为实现没有带来任何东西(没有一个实现特别快),也没有实现所有数据绑定需求(base64编码、多格式支持功能)--最糟糕是,所有现有的(反)序列化程序都需要使用新的、功能较弱的API重新编写。Jackson的基线需要变成Java 8。因此,我看不到任何好处。
然而,反过来也是可能的;可以基于Jackson流数据包实现JSR-353,并且已经实现了:
是的。
或者,为了使Jackson能够阅读/写JSR-353 JSON对象类型,需要一个简单的数据类型模块。
https://github.com/FasterXML/jackson-datatype-jsr353
因此,如果Java开发人员最终遵循“标准”的轨道,Jackson可以沿着。
Google didn't (couldn't?) vote on the JSR,我也找不到任何关于Gson's roadmap的信息来暗示他们愿意遵守。

l7wslrjt

l7wslrjt2#

tl;dr

用途:

更新

另外两个答案是正确的,但是已经过时了。正如他们所解释的,Jackson并没有直接实现任何JSR。
然而:

因此,您现在确实可以使用JSON库而不是Jackson来编写标准代码。

4szc88ey

4szc88ey3#

没有,既没有在本地实现这个API,也没有计划(据我所知)实现它。它提供的功能非常少(简化的流API,根本没有数据绑定),而且除了为实现的JSR集添加兼容性复选框之外,几乎没有人愿意实现它。
https://github.com/pgelinas/jackson-javax-json/上有一个基于Jackson的JSR-353实现,但是,如果您真的认为基于此API编写代码是个好主意的话。

相关问题