{"id":76520,"date":"2018-05-02T13:00:32","date_gmt":"2018-05-02T10:00:32","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=76520"},"modified":"2018-05-02T12:32:08","modified_gmt":"2018-05-02T09:32:08","slug":"get-to-know-adapters-json-binding-overview-series","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html","title":{"rendered":"Get to Know Adapters: JSON Binding Overview Series"},"content":{"rendered":"<p>An adapter configures custom object creation and serialization by implementing the <em>JsonbAdapter<\/em> interface. The methods <em>adaptToJson()<\/em> and <em>adaptFromJson()<\/em> are overwritten with logic that performs the serialization and deserialization operation.<\/p>\n<p><strong>The next article<\/strong> is about the most advanced way to customize JSON-B with custom serializers and deserializers.<\/p>\n<p><b>In the example<\/b> implementation here, the <em>adaptToJson()<\/em> method has been implemented with code that transforms the <em>Booklet<\/em> object into a <em>JsonObject<\/em> using the JSON object builder from the JSON Processing API. The <em>adaptFromJson()<\/em> method constructs a <em>Booklet<\/em> object from a <em>JsonObject<\/em> instance.<\/p>\n<pre class=\"brush:java\">public class BookletAdapter implements JsonbAdapter&lt;Booklet, JsonObject&gt; {\r\n\r\n    @Override\r\n    public JsonObject adaptToJson(Booklet booklet) {\r\n        return Json.createObjectBuilder()\r\n           .add(\"title\", booklet.getTitle())\r\n           .add(\"firstName\", booklet.getAuthor().getFirstName())\r\n           .add(\"lastName\", booklet.getAuthor().getLastName())\r\n           .build();\r\n    }\r\n\r\n    @Override\r\n    public Booklet adaptFromJson(JsonObject json) {\r\n        Booklet booklet = new Booklet(json.getString(\"title\"),\r\n        new Author(json.getString(\"firstName\"),\r\n        json.getString(\"lastName\")));\r\n        return booklet;\r\n    }\r\n}<\/pre>\n<p>As you can see, the <em>adaptToJson()<\/em> method <strong>flattens<\/strong> the <em>Author<\/em>\u00a0object to two properties: <em>firstName<\/em> and <em>lastName<\/em>.\u00a0The <em>adaptFromJson()<\/em> method reconstructs the <em>Author<\/em>\u00a0object and outputs a <em>Booklet<\/em>\u00a0instance.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>The <em>JsonbAdapter<\/em> is very flexible and can be used to <strong>customize the serialization and deserialization of individual fields, as well as entire objects<\/strong>.<\/p>\n<p>This is achieved by marking the field, method or class that should be customized with the <em>JsonbTypeAdapter\u00a0<\/em>annotation and passing it the class name of the <em>JsonbAdapter<\/em> to use.<\/p>\n<p><b>An example implementation<\/b> is shown here. The <em>firstName<\/em> field is marked with the <em>JsonbTypeAdapter<\/em>\u00a0annotation and the <em>FirstNameAdapter<\/em> class specified as the adapter.<\/p>\n<pre class=\"brush:java\">public class Author {\r\n    @JsonbTypeAdapter(FirstNameAdapter.class)\r\n    private String firstName;\r\n}\r\n\r\npublic class FirstNameAdapter implements JsonbAdapter&lt;String, JsonValue&gt; {\r\n\r\n    @Override\r\n    public JsonValue adaptToJson(String fullName) {\r\n        return Json.createValue(fullName.subSequence(0, 1).toString());\r\n    }\r\n\r\n    @Override\r\n    public String adaptFromJson(JsonValue json) {\r\n        return json.toString();\r\n    }\r\n\r\n}<\/pre>\n<p>And finally, the most advanced way to customize JSON-B with custom serializers and deserializers.<\/p>\n<p>There is plenty more to know about the JSON Binding API than what I talk about in these blog posts.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>Published on Java Code Geeks with permission by Alex Theedom, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener\">JCG program<\/a>. See the original article here: <a href=\"https:\/\/readlearncode.com\/java-ee\/get-to-know-adapters-json-binding-overview-series\/\" target=\"_blank\" rel=\"noopener\">Get to Know Adapters: JSON Binding Overview Series<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>An adapter configures custom object creation and serialization by implementing the JsonbAdapter interface. The methods adaptToJson() and adaptFromJson() are overwritten with logic that performs the serialization and deserialization operation. The next article is about the most advanced way to customize JSON-B with custom serializers and deserializers. In the example implementation here, the adaptToJson() method has &hellip;<\/p>\n","protected":false},"author":500,"featured_media":175,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[69],"class_list":["post-76520","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-json"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Get to Know Adapters: JSON Binding Overview Series - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"An adapter configures custom object creation and serialization by implementing the JsonbAdapter interface. The methods adaptToJson() and adaptFromJson()\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Get to Know Adapters: JSON Binding Overview Series - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"An adapter configures custom object creation and serialization by implementing the JsonbAdapter interface. The methods adaptToJson() and adaptFromJson()\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:author\" content=\"http:\/\/www.facebook.com\/alex.theedom.j2ee\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-02T10:00:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/json-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alex Theedom\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@alextheedom\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Theedom\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html\"},\"author\":{\"name\":\"Alex Theedom\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/39c928afe0429ad2d2742a8b79ec8bce\"},\"headline\":\"Get to Know Adapters: JSON Binding Overview Series\",\"datePublished\":\"2018-05-02T10:00:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html\"},\"wordCount\":272,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/json-logo.jpg\",\"keywords\":[\"JSON\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html\",\"name\":\"Get to Know Adapters: JSON Binding Overview Series - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/json-logo.jpg\",\"datePublished\":\"2018-05-02T10:00:32+00:00\",\"description\":\"An adapter configures custom object creation and serialization by implementing the JsonbAdapter interface. The methods adaptToJson() and adaptFromJson()\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/json-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/json-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2018\\\/05\\\/get-to-know-adapters-json-binding-overview-series.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Get to Know Adapters: JSON Binding Overview Series\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/39c928afe0429ad2d2742a8b79ec8bce\",\"name\":\"Alex Theedom\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d875f8b02b9be72e4dcae0e790c2edc5416eac63cad6e1474d370f884605062?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d875f8b02b9be72e4dcae0e790c2edc5416eac63cad6e1474d370f884605062?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d875f8b02b9be72e4dcae0e790c2edc5416eac63cad6e1474d370f884605062?s=96&d=mm&r=g\",\"caption\":\"Alex Theedom\"},\"description\":\"Alex Theedom is a Senior Java Developer and has recently played a pivotal role in the architectural design and development of a microservice based, custom built lottery and instant win game platform. Alex has experience of Java web application development in a diverse range of fields including finance, e-learning, lottery and software development. He is the co-author of Professional Java EE Design Patterns and many articles.\",\"sameAs\":[\"https:\\\/\\\/readlearncode.com\\\/\",\"http:\\\/\\\/www.facebook.com\\\/alex.theedom.j2ee\",\"http:\\\/\\\/www.linkedin.com\\\/pub\\\/alex-theedom\\\/42\\\/90b\\\/910\",\"https:\\\/\\\/x.com\\\/alextheedom\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/alex-theedom\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Get to Know Adapters: JSON Binding Overview Series - Java Code Geeks","description":"An adapter configures custom object creation and serialization by implementing the JsonbAdapter interface. The methods adaptToJson() and adaptFromJson()","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html","og_locale":"en_US","og_type":"article","og_title":"Get to Know Adapters: JSON Binding Overview Series - Java Code Geeks","og_description":"An adapter configures custom object creation and serialization by implementing the JsonbAdapter interface. The methods adaptToJson() and adaptFromJson()","og_url":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_author":"http:\/\/www.facebook.com\/alex.theedom.j2ee","article_published_time":"2018-05-02T10:00:32+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/json-logo.jpg","type":"image\/jpeg"}],"author":"Alex Theedom","twitter_card":"summary_large_image","twitter_creator":"@alextheedom","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Alex Theedom","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html"},"author":{"name":"Alex Theedom","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/39c928afe0429ad2d2742a8b79ec8bce"},"headline":"Get to Know Adapters: JSON Binding Overview Series","datePublished":"2018-05-02T10:00:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html"},"wordCount":272,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/json-logo.jpg","keywords":["JSON"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html","url":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html","name":"Get to Know Adapters: JSON Binding Overview Series - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/json-logo.jpg","datePublished":"2018-05-02T10:00:32+00:00","description":"An adapter configures custom object creation and serialization by implementing the JsonbAdapter interface. The methods adaptToJson() and adaptFromJson()","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/json-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/json-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2018\/05\/get-to-know-adapters-json-binding-overview-series.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Get to Know Adapters: JSON Binding Overview Series"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/39c928afe0429ad2d2742a8b79ec8bce","name":"Alex Theedom","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6d875f8b02b9be72e4dcae0e790c2edc5416eac63cad6e1474d370f884605062?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6d875f8b02b9be72e4dcae0e790c2edc5416eac63cad6e1474d370f884605062?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6d875f8b02b9be72e4dcae0e790c2edc5416eac63cad6e1474d370f884605062?s=96&d=mm&r=g","caption":"Alex Theedom"},"description":"Alex Theedom is a Senior Java Developer and has recently played a pivotal role in the architectural design and development of a microservice based, custom built lottery and instant win game platform. Alex has experience of Java web application development in a diverse range of fields including finance, e-learning, lottery and software development. He is the co-author of Professional Java EE Design Patterns and many articles.","sameAs":["https:\/\/readlearncode.com\/","http:\/\/www.facebook.com\/alex.theedom.j2ee","http:\/\/www.linkedin.com\/pub\/alex-theedom\/42\/90b\/910","https:\/\/x.com\/alextheedom"],"url":"https:\/\/www.javacodegeeks.com\/author\/alex-theedom"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/76520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/500"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=76520"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/76520\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/175"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=76520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=76520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=76520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}