json 区分Jersey、Jackson和JaxB API

xsuvu9jc  于 2022-12-24  发布在  其他
关注(0)|答案(4)|浏览(130)

Hi:我一直在内部使用Jackson进行JSON处理,我想将这些对象作为JSON提供给外部API(REST)(现在,它们在内部存储为Java对象)。
显而易见的实现是编写某种查询引擎,该引擎读取请求,从底层数据存储中检索对象,然后使用Jackson将它们序列化为Jsons。
然而,我开始意识到,已经有一些API可以用来组装这样的Web服务,处理很多平凡的细节(安全性、查询解析、REST协调)。例如,Jersey注解似乎可以用来定义REST服务......
所以我的问题是:基于Java EE JSON的Web服务的最新发展水平是什么?这些服务使用什么作为数据存储(即明文?RDBMS?对象数据服务?)

    • 最重要的是...用于xml和json数据Map的不同API(即jersey/Jackson/JaxB)之间的功能差异是什么?**
kr98yfug

kr98yfug1#

除了Jersey(以及其他JAX-RS实现,如RESTeasy)使用Jackson之外,您还可以从使用jDBI之类的东西首先绑定POJO中的关系数据中获益。它可以完成许多大型ORM(如Hibernate)所做的事情,但对于大多数常见任务来说使用起来更简单。
或者,如果您更喜欢Hibernate,则可以使用Jackson Hibernate module来处理将POHO作为JSON进行阅读时可能出现的一些边缘情况。

tktrz96b

tktrz96b2#

Jersey有一个插件,它可以接收JAXB注解的对象,并自动将它们序列化为JSON。Jersey(JAX-RS)是一个非常好的产品。
您还可以在相同的对象上使用JPA注解,并使用JPA提供程序(如EclipseLink)来满足您的许多数据库需求。

xesrikrc

xesrikrc3#

为了规范基于J2EE的RESTfull Web服务的开发,JAVA发布了一些规范JAX-RS,这些规范只是定义而非具体实现。
这些API(规范)有各种各样的实现提供者,Jersey、RestEasy、RestLet、Apache-cxf是可以用来在JAVA中实现RESTfull服务的少数几个这样的实现。
具体到Jersey,它不仅仅局限于JAX-RS API的实现,它是一个框架,通过扩展JAX-RS功能构建了自己的API集,并提供了额外的功能,以进一步简化在JAVA中开发REST API。
JAXB代表Java Architecture for XML binding,是JAVA提供的另一个规范,用于将Java对象编组和解编组为XML,反之亦然。同样,它只是规范而不是具体的实现。
说到Jackson,它只是一个JSON处理器(通常是JAXB的实现之一),用于将Java对象编组和解编组为JSON。Jersey在内部使用Jackson将Java对象转换为JSON,反之亦然。

5q4ezhmt

5q4ezhmt4#

Jersey是JAX-RS的一个实现。你可以把JAX-RS看作是RESTful Web服务的一个公共接口。这个接口的实现是由供应商提供的。这个接口有很多实现,比如JERSEY和Rest-Easy。另一方面,Jackson是一个Json处理器。它可以帮助你把你的对象转换成json,反之亦然。

相关问题