我在网上找不到我的问题的答案(也许是因为我还是个新手,没有搜索得够好)。
请问是否有人可以告诉我 Jackson 和 Gson 是否实现了标准的JSR 353: Java™ API for JSON Processing。我想使用标准代码进行编写。
我在网上找不到我的问题的答案(也许是因为我还是个新手,没有搜索得够好)。
请问是否有人可以告诉我 Jackson 和 Gson 是否实现了标准的JSR 353: Java™ API for JSON Processing。我想使用标准代码进行编写。
概述:
其他两个答案都是正确的,但已经过时。正如它们所解释的那样,Jackson并没有直接实现任何JSR。
然而:
因此,您现在可以使用除Jackson之外的标准代码编写JSON库。
这个链接有回复(显然是由Jackson的创始人发表的),它基本上表示Jackson没有实现JSR:
2014年1月26日晚上8:21,Tatu Saloranta发表了回复。
我不是JSR-353的忠实粉丝(我认为它是一个巨大的失败),除非发生了重大变化,否则Jackson核心将不会实现JSR-353。使用数据绑定没有任何好处;因为实现没有带来任何东西(没有特别快的实现),也没有实现所有数据绑定所需的功能(base64编码、多格式支持能力)--最糟糕的是,所有现有的(反)序列化器都需要重新编写以使用新的、能力更弱的API。而Jackson的基线需要成为Java 8。所以我看不到任何好处。
然而,反过来是可能的;可以基于Jackson流包实现JSR-353,这已经完成了:
https://github.com/pgelinas/jackson-javax-json。
或者,要使Jackson能够读取/写入JSR-353 JSON对象类型,需要一个简单的数据类型模块。我之前写过一个:
https://github.com/FasterXML/jackson-datatype-jsr353
因此,如果Java开发人员最终遵循“标准”轨道,Jackson就可以一起玩耍。
Google没有在JSR上投票, 而我也找不到Gson的路线图上的任何信息表明他们想要遵守。