认识JSON绑定:概述系列

JSON绑定的Java API(JSON-B)1.0增强了Java EE平台对JSON数据交换格式的整体支持。 事实证明, 用于JSON处理的Java API(JSON-P)1.1十分流行,它们共同构成了完美的合作伙伴,填补了Java EE的JSON功能的长期缺陷。

本系列的下一篇文章介绍了JSON绑定操作的自定义。

JSON-B规范将已经变得司空见惯的行业实践和方法进行了整理。 它大量使用注释来使用映射语义标记类和字段,并提供了处理复杂数据结构时经常需要的可扩展性。

开箱即用,它提供了满足合理期望的默认映射,用于序列化 序列化 。 可以使用两种定制方法来覆盖默认定制:

  1. 编译时间注释和
  2. 运行时配置构建器。

对于高级定制,API在运行时构建器和映射注释不足时提供适配器和序列化器/反序列化器

标题功能

该API的主要功能是以直观且易于使用的方式在Java类和JSON文档之间提供绑定支持 ,因此,不具备JSON知识的开发人员应该能够使用该API有效地进行开发。 对于那些具有其他JSON反序列化库(例如GSON和Jackson)的经验的人,会感到非常熟悉。

JSON-B API提供了两个入口点接口: Jsonb  JsonbBuilderJsonb接口通过toJson()fromJson()方法提供序列化和反序列化功能,而JsonbBuilder接口为客户端提供对Jsonb实例的访问点。 它基于一组可选配置来构建实例。

简单的例子

让我们来看一个简单的示例,该示例对Book.class的实例进行往返转换。

要开始序列化或反序列化,您需要一个Jsonb实例。 您可以通过在JsonBuilder接口上调用静态工厂方法create()创建 。 使用此实例,您可以通过选择适当的重载toJson()fromJson()方法来执行所需的所有序列化和反序列化操作。

在此代码段中,我调用了最简单的toJson()方法并将其传递给book对象。

Book book = new Book("SHDUJ-4532", "Fun with Java", "Alex Theedom");
String bookJson = JsonbBuilder.create().toJson(book);

此方法的返回值是一个String ,它是传递给toJson()方法的对象的JSON数据表示形式。

现在,我们将注意力转向反序列化操作。 它就像序列化一样简单,并且还需要Jsonb的实例。 在代码片段中,我调用最简单的fromJson()方法并将其传递给上一个示例生成的JSON String,这是我要反序列化的JSON数据,并且它是目标类型,作为类类型。

String json = "{\"author\":\"Alex Theedom\"," +"\"id\":\"SHDUJ-4532\"," +"\"title\":\"Fun with Java\"}";
Book book = JsonbBuilder.create().fromJson(json, Book.class);

在这些示例中,我使用了Jsonb接口上可用的重载方法范围内最简单的toJson()fromJson()方法。 现在,让我们更深入地研究一下如何定制序列化和反序列化过程。

现在,对JSON Binding API的介绍进行了总结,关于JSON-B的知识还很多。

翻译自: https://www.javacodegeeks.com/2018/04/get-to-know-json-binding-overview-series.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++可视化界面_新基建的福音:智慧楼宇可视化监控系统引领智能化新时代

前言智慧楼宇和人们的生活息息相关,楼宇智能化程度的提高,会极大程度的改善人们的生活品质,在当前 工业互联网 大背景下受到很大关注。目前 智慧楼宇可视化监控 的主要优点包括:智慧化 -- 智慧楼宇是一个生态系统,像人一样拥有感知…

table 多行 宽度不一致_“table”除了桌子,你还知道一些别的意思吗?

就比如"nine-nine table"这可是小学一年级必须要掌握的知识实际上,nine-nine table是九九乘法表,乘法表可以用times table表示,书面用语是multiplication table。table除了桌子的意思外,还有一些别的意思和表达&#xf…

android uri db,Android ContentProvider封装数据库和文件读写总结

本文是我各处东拼西凑加上自己实现一个ContentProvider的使用总结,留做后用,主要介绍ContentProvider的集成方法。一、综述ContentProvider是Android四大组件之一,其核心功能是提供应用间的统一的数据访问方式,当然也可以用于应用…

ddos攻击工具_简单有效的ddos攻击防御方法

做过网站的站长大多有被ddos攻击的经历,不少人面对竞争对手的网站就是直接雇人ddos攻击网站,导致对方网站长期打不开,最后无奈关闭网站,初尧今天就告诉大家一个最简单也是最有效的防御方法。高防服务器/高防IP对于游戏&#xff0c…

android gpio驱动实例,安卓gpio操作示例

GPIO值在RK3288中的计算方法为:bank32pin,如:GPIO7A3: 732 0*8 3227GPIO0B5: 032 1*8 5131. 导出/sys/class/gpio# echo 44 > export2. 设置方向/sys/class/gpio/gpio44# echo out > direction3. 查看方向/sys/class/gpio/…

回调函数中有回调函数吗_嗨,那里有回调!

回调函数中有回调函数吗因为是我的书包,所以我喜欢JavaScript 。 实际上,我已经开始喜欢JavaScritp的面向异步回调的编程风格 。 因此,当我发现自己处于非JavaScript环境中时(例如Java) ,我往往会错过使用回…

python的django_django能用来做什么

Django是什么 Django是一个开放源代码的Web应用框架,由Python写成。采用了MT‘V的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统&am…

小程序确定取消弹窗_浅析微信小程序modal弹窗关闭默认会执行cancel问题

在我们使用小程序的modal组件时候,有的时候会碰到一个问题,那就是弹框的关闭,我们并没有选择取消或确定,而是点击弹框之外的部分,这个时候弹框会关闭,按理来说不会触发取消和确定的绑定事件,但是…

android n 发布时间,Android N 正式版将在9月发布

【环球科技综合报道】据外媒5月8日报道,谷歌预计将在9月份放出正式版Android N。三星、华为、LG、HTC和黑莓等品牌手机将获Android N升级。此前谷歌发出的路线图中的升级安排:3月: Android N 开发者预览版 1 (alpha)4月: Android N 开发者预览版 2 (beta…

ios realm 文件_关于ios:具有后台进程的Realm实例会丢失数据

我将Realm for Swift与仅内存配置一起使用。 由于在后台线程中更新数据库,因此每次使用时都会创建一个Realm实例。 在Realm文档中提到了此问题,这里还有另一个问题https://stackoverflow.com/a/45375608/613121。但是通过测试数据库,我注意到…

datatable如何生成级联数据_如何把Excel表数据批量生成条形码

条形码属于一维条码,是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符,条形码的种类比较多,比如常用的Code128码,Code39码,Code93码,EAN-13码&am…

android数字累加,Android自己设置View之数字自动增长

第一次写文,请多指教,有何问题及改进建议都可以告诉我-.-Idea来自金山词霸App的单词计数,下面先放图autoNumber.gif如上图,就是,下面开始进入自己设置View自己设置View步骤1. 自己设置属性2. 生成构造方法3. onMeasure…

spring条件注解有哪些_Spring4有条件

spring条件注解有哪些Spring 4引入了一个称为Conditional的新功能,该功能针对于生成bean的Spring组件,并注视这些bean的生成,实质上,它提供了一种条件生成bean的方法。 考虑一个简单的例子: 我有一个名为“ Customer…

settimeout怎么用_怎么实现一个3d翻书效果

本篇主要讨论以下两种翻书动画的实现:第一种是整页翻转的效果:这种整页翻转的效果主要是做rotateY的动画,并结合一些CSS的3d属性实现。第二种折线翻转的效果,如下图所示:主要是通过计算页面翻折过来的位置。这两种原理…

springboot怎么返回404_SpringBoot(二十)_404返回统一异常处理结果

1.修改application.properties文件# 自定义404#出现错误时, 直接抛出异常spring.mvc.throw-exception-if-no-handler-foundtrue#不要为我们工程中的资源文件建立映射spring.resources.add-mappingsfalse2.添加controller增强处理if (e instanceof NoHandlerFoundException) {re…

android 通知垃圾回收,Android中垃圾回收日志信息

原因GC_CONCURRENTfreed 178K, 41% free 3673K/6151K, external 0K/0K, paused 2ms2msGC_EXPLICITfreed 6K, 41% free 3667K/6151K, external 0K/0K, paused 29ms红颜色标出的部分就是垃圾回收触发的原因。在Android中有五种类型的垃圾回收触发原因。GC_CONCURRENT当堆内存增长…

5个令人震惊的统计数据证明日志不足

事实证明,我们都犯有记录不当行为的罪行。 不相信我们吗? 这些统计数据可能会改变您的想法 当人们提出带有明显答案的问题时,这非常令人不快,因此,我不会坐在这里问您和您的团队是否使用日志文件来监视预生产和生产环…

linearregression_机器学习-TensorFlow建模过程 Linear Regression线性拟合应用

TensorFlow是咱们机器学习领域非常常用的一个组件,它在数据处理,模型建立,模型验证等等关于机器学习方面的领域都有很好的表现,前面的一节我已经简单介绍了一下TensorFlow里面基础的数据结构即:Tensor和Dataset&#x…

yum配置文件 重启后还原_江湖救急 : CentOS7.5 /usr 目录误删, 恢复操作.

一.概述前两天在网上找了个脚本,看着没问题,直接复制粘贴了. 结果有特殊字符,直接换行.执行了 rm -rf /usr 目录. 然后就傻了,各种操作命令找不到, 无法登陆.......万分幸运的是,数据没丢,要是丢了.那我就要命了1.如果可以进入操作系统,并且可以正常操作的话. 依旧会存在隐患.…

html页面调用存储过程,用WebBrowser实现HTML界面的应用

HTML的界面有以下特点:图文混排,格式灵活,可以包含Flash、声音和视频等,实现图文声像的多媒体界面,而且易于建立和维护。另外,HTML的显示环境一般机器上都具备,通常不需要安装额外的软件。当然&…