json解析适配模板_认识适配器:JSON绑定概述系列

json解析适配模板

适配器通过实现JsonbAdapter接口来配置自定义对象的创建和序列化。 方法AdaptToJson()AdaptFromJson()被执行序列化和反序列化操作的逻辑覆盖。

下一篇文章介绍了使用自定义序列化器和反序列化器自定义JSON-B的最高级方法。

此处的示例实现中,已经使用代码实现了AdaptToJson()方法,该代码使用JSON Processing API中的JSON对象构建器将Booklet对象转换为JsonObjectAdaptFromJson()方法从JsonObject实例构造Booklet对象。

public class BookletAdapter implements JsonbAdapter<Booklet, JsonObject> {@Overridepublic JsonObject adaptToJson(Booklet booklet) {return Json.createObjectBuilder().add("title", booklet.getTitle()).add("firstName", booklet.getAuthor().getFirstName()).add("lastName", booklet.getAuthor().getLastName()).build();}@Overridepublic Booklet adaptFromJson(JsonObject json) {Booklet booklet = new Booklet(json.getString("title"),new Author(json.getString("firstName"),json.getString("lastName")));return booklet;}
}

如您所见, AdaptToJson()方法将Author对象展为两个属性: firstNamelastNameAdaptFromJson()方法将重建Author对象并输出Booklet实例。

JsonbAdapter非常灵活,可用于自定义单个字段以及整个对象的序列化和反序列化

这是通过标记应使用JsonbTypeAdapter注释自定义的字段,方法或类并将其传递给要使用的JsonbAdapter的类名来实现的。

此处显示了示例实现firstName字段标记有JsonbTypeAdapter批注和指定为适配器的FirstNameAdapter类。

public class Author {@JsonbTypeAdapter(FirstNameAdapter.class)private String firstName;
}public class FirstNameAdapter implements JsonbAdapter<String, JsonValue> {@Overridepublic JsonValue adaptToJson(String fullName) {return Json.createValue(fullName.subSequence(0, 1).toString());}@Overridepublic String adaptFromJson(JsonValue json) {return json.toString();}}

最后,这是使用自定义序列化器和反序列化器自定义JSON-B的最先进方法。

除了我在这些博客文章中讨论的内容之外,关于JSON Binding API还有更多的知识要知道。

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

json解析适配模板

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

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

相关文章

IntelliJ IDEA for Mac在MacOS模式下的替换快捷键(Replace Shortcut)

快捷键快捷键符号英文名称功能说明Command R⌘RReplace选择要被替换的内容&#xff0c;按下此组合键&#xff0c;然后会出现替换内容输入框&#xff0c;输入替换内容&#xff0c;按下回车一次&#xff0c;替换一个&#xff0c;继续按回车再替换一个Shift Command R⇧⌘RRepla…

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

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

IntelliJ IDEA for Mac在MacOS模式下的动态代码模板快捷键(Live Templates Shortcut)

快捷键快捷键符号英文名称功能说明Option Command J⌥ ⌘ JSelect Template弹出模板选择窗口&#xff0c;将选定的代码使用动态模板包住Option Command T⌥ ⌘ TSurround with Live Template弹出模板选择窗口&#xff0c;将选定的代码使用动态模板包住&#xff0c;和上面那个…

jdk 8 时区 转换_JDK 8 BigInteger精确缩小转换方法

jdk 8 时区 转换在博客文章“ Java中Long到Int的精确转换 ”中&#xff0c;我讨论了使用Math.toIntExact&#xff08;Long&#xff09;将Long精确地转换为int或者如果无法缩小转换范围则抛出ArithmeticException 。 JDK 8引入了该方法&#xff0c; JDK 8还向BigInteger类引入了…

IntelliJ IDEA快捷键(Shortcut)官方文档地址

快捷键官方文档地址&#xff1a;https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf

通过OAuth 2.0和Okta使用安全的服务器到服务器通信构建Spring Boot应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 大多数OAuth 2.0指南都围绕用户的上下文&#xff0c;即使用Google&#xff0c;Github…

IntelliJ IDEA for Mac在MacOS模式下添加到收藏夹的快捷键(Add Favorite Shortcut)

快捷键快捷键符号英文名称功能说明Option Shift F⌥⇧FAdd Favorite添加到收藏夹 添加到收藏夹后&#xff0c;你可以按下组合键 Command 2 打开收藏夹窗格&#xff0c;或者直接在视图的左边栏找到『收藏夹』如下图所示&#xff1a;

公有云 私有云 混合云_混合云的承诺,收益和产品

公有云 私有云 混合云云承诺为我们提供所有灵活性。 有机会在需要时访问无限资源并相应地付款。 我们不再需要花费时间安装&#xff0c;配置和维护服务器&#xff1b; 我们被承诺将有更多的时间来“仅仅编码”。 取而代之的是&#xff0c;我们越来越多地锁定供应商&#xff0c…

MVC基础知识

1.MVC全名是Model View Controller&#xff0c;是模型(model)&#xff0d;视图(view)&#xff0d;控制器(controller)的缩写 2.Model&#xff08;模型&#xff09;是应用程序中用于处理应用程序数据逻辑的部分。  通常模型对象负责在数据库中存取数据。主体 3.View&#xf…

MacBook键盘符号

图标介绍⌘Command⇧Shift⇪Caps Lock⌥Option Alt⌃Control↩Enter⌫Delete⌦Fn Delete↑上箭头↓下箭头←左箭头→右箭头⇞Fn ↑ Page Up⇟Fn ↓ Page DownHomeFn ←EndFn →⇥Tab 右制表符⇤Shift Tab 左制表符⎋Esc Escape⏏电源开关键

spring vaadin_在Spring Boot中使用Vaadin的简介

spring vaadin介绍 Vaadin的工作方式依赖于服务器端渲染&#xff0c;因此可以自然地集成到诸如Spring之类的框架中。 Vaadin的Spring集成已经存在了一段时间&#xff0c;并提供了用于在Spring容器中配置和管理Vaadin的工具&#xff0c;如果您希望将Vaadin与Spring Boot结合使用…

vue中生产模式和调试模式_为什么在生产中进行调试是如此诱人?

vue中生产模式和调试模式生产调试 为什么在生产中进行调试是如此诱人&#xff1f; 在我的第一份工作中&#xff0c;我要做的任务之一是修复一个错误&#xff0c;该错误过去在非常复杂的生产系统中有时会发生。 那很简单&#xff01; - 我想。 我将在开发环境中重现同样的情况&a…

IntelliJ IDEA for Mac在MacOS模式下的编译和运行快捷键(Compile and Run Shortcut)

快捷键快捷键符号英文名称功能说明Command F9⌘F9Make project编译ProjectCommand Shift F9⌘⇧F9Compile selected file, package or module编译选择的文件、包或模块Control Option R⌃⌥RSelect configuration and run弹出 Run 的可选择菜单Control Option D⌃⌥DSel…

android基础知识

第07节 ListView 1.当我们的程序中有大量的数据需要展示的时候&#xff0c;就可以借助 ListView 来实现。ListView 允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内&#xff0c;同时屏幕上原有的数据则会滚动出屏幕。 ListView 的简单用法 1.listView数据的添…

apache derby_Apache Derby数据库用户和权限

apache derby抽象 Apache Derby很棒&#xff01; 尤其是在微服务环境中&#xff0c;服务的数据&#xff08;可能&#xff09;会缩减&#xff0c;并且不需要强大的RDBMS。 Derby很棒&#xff0c;因为它非常易于使用&#xff0c;特别是在涉及用户和权限时&#xff0c;您不需要任何…

IntelliJ IDEA for Mac在MacOS模式下的版本控制/本地历史记录快捷键(VCS and Local History Shortcut)

快捷键快捷键符号英文名称功能说明Command K⌘KCommit project to VCS提交代码到版本控制器Command T⌘TUpdate project from VCS从版本控制器更新代码CommandShiftK⌘⇧KPush commits推送提交&#xff0c;有问题OptionCommandK⌥⌘KPush commits推送提交Control V⌃V‘VCS’…

nutshell_Nutshell中的Java 8语言功能-第1部分

nutshell你好朋友&#xff0c; Java 8发布已经很长时间了&#xff0c;现在越来越多地被使用。 在本文中&#xff0c;我们将讨论以下Java 8主题。 1.功能接口 2.Lambda表达式 3.默认方法 1.功能界面 什么是功能接口&#xff1f; 与一种并且只有一种抽象方法的接口是功能接口…

windows server 2008 R2 命令行的方式创建用户、设置密码

一、使用命令行的方式创建用户、设置密码 &#xff08;1&#xff09;标准格式&#xff1a; net user username password / add 例如&#xff1a;建立一个名为lijunxuan、密码为Abc_123的用户 net user lijunxuan Abc_123 /add 二、使用命令行修改旧帐户的密码 &#xff…

IntelliJ IDEA for Mac的快速切换当前主题方案(Quick switch current scheme)

文章目录一、配色方案 &#xff08;Color Scheme&#xff09;二、代码样式方案&#xff08;Code Style Scheme&#xff09;三、键映射表&#xff0c;即快捷键方案&#xff08;Keymap&#xff09;四、视图模式/查看模式/显示模式&#xff08;View Mode&#xff09;五、界面外观&…

jpa避免n+1_JPA技巧:避免N + 1选择问题

jpa避免n1介绍 像JPA这样的ORM框架通过帮助我们在对象<->关系数据映射期间避免了很多样板代码&#xff0c;从而简化了我们的开发过程。 但是&#xff0c;它们还给表带来了一些其他问题&#xff0c;N 1是其中之一。 在本文中&#xff0c;我们将简要介绍该问题以及避免这些…