{"id":92899,"date":"2017-08-14T16:01:54","date_gmt":"2017-08-14T16:01:54","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=92899"},"modified":"2021-07-16T13:38:39","modified_gmt":"2021-07-16T13:38:39","slug":"write-wrapper-class-apex","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/","title":{"rendered":"How to write a wrapper class in APEX"},"content":{"rendered":"\n<p>Any <strong>Salesforce<\/strong> developer would be familiar with creating parent child relationship queries in <strong>APEX<\/strong>. For example getting a list of products with their respective prices we use such queries. However when we take that data to Visualforce pages it becomes a little bit hectic to show that data. This problem can be solved with the help of <strong>wrapper class<\/strong>. This is what I am going to show you today, how to create a wrapper class in apex.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><h3 class=\"index-title\">APEX code<\/h3><\/div><div class=\"margin-bottom-50\">\n<p>For this example we will be making a small module to mass update product active status. As we all know products have an isActive boolean value which tells whether the product could be added to a pricebook or not. The controller code for this module is as follows:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:java\">public class wrappertest {\n\t\n    public list&lt;productwrapper&gt; recordlist { get; set;}\n    public list&lt;selectoption&gt; status;\n    public string selectedstatus { get; set;}\n    \n    public wrappertest(){\n        list&lt;product2&gt; pro = [select id, name, isactive from product2];\n        if(pro.size()!=0){\n            recordlist = new list&lt;productwrapper&gt;();\n        }\n        for(product2 p:pro){\n            recordlist.add(new productwrapper(p));\n        }\n        \n        selectedstatus = 'active';\n        \n    }\n    \n    public list&lt;selectoption&gt; getStatus(){\n        status = new list&lt;selectoption&gt;();\n        status.add(new selectoption('active','Active'));\n        status.add(new selectoption('inactive','In-Active'));\n        return status;\n    }\n    \n    public void changestatus(){\n        list&lt;product2&gt; prolist = new list&lt;product2&gt;();\n        for(productwrapper pw: recordlist){\n            if(pw.selected){\n                if(selectedstatus == 'active'){\n                    pw.record.isactive = true;\n                }else if(selectedstatus == 'inactive'){\n                    pw.record.isactive = false;\n                }\n                pw.selected=false;\n                prolist.add(pw.record);\n            }\n        }\n        update prolist;\n    }\n    \n    public class productwrapper{\n        public boolean selected { get; set;}\n        public product2 record  { get; set;}\n        public productwrapper(product2 record){\n            this.record = record;\n            selected = false;\n        }\n    }\n}<\/pre>\n\n\n\n<p>In the above example I have created an <strong>inner-class<\/strong> at the bottom of the code which is the most important part of this <strong>controller<\/strong>. That class holds a boolean variable and an object of product2 type. The use of this variable will be explained later on in the code. For now, lets focus on the other parts. We have a list of productwrapper type and this list is being iterated over to check or uncheck the isActive field. One thing to notice here is that I have added all the record object to a list of product2 type. That is because <strong>DML<\/strong> does not work on Wrapper class and you have to take out the object to perform a DML operation on that object.<\/p>\n<\/div>\n\n\n\n<div class=\"wk-index-wrap\"><h3 class=\"index-title\">Visualforce Code<\/h3><\/div><div class=\"margin-bottom-50\">\n<p>The code for the visualforce page is as follows:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush:xml\">&lt;apex:page controller=\"wrappertest\"&gt;\n    &lt;apex:form&gt;\n        &lt;apex:selectList value=\"{!selectedstatus}\" size=\"1\"&gt;\n            &lt;apex:selectOptions value=\"{!status}\"\/&gt;\n        &lt;\/apex:selectList&gt;\n        &lt;apex:commandButton action=\"{!changeStatus}\" value=\"Update Status\"\/&gt;\n    \t&lt;apex:datatable value=\"{!recordlist}\" var=\"rec\"&gt;\n        \t&lt;apex:column&gt;\n            \t&lt;apex:inputCheckbox value=\"{!rec.selected}\"\/&gt;\n            &lt;\/apex:column&gt;\n            &lt;apex:column value=\"{!rec.record.name}\" headerValue=\"Product Name\"\/&gt;\n            &lt;apex:column value=\"{!rec.record.isActive}\" headerValue=\"Active\"\/&gt;\n        &lt;\/apex:datatable&gt;\n    &lt;\/apex:form&gt;\n&lt;\/apex:page&gt;<\/pre>\n\n\n\n<p>In this page we have used the wrapper class list to show the data in the data table. Here we have used the selected boolean value of the wrapper class. The value is now mapped to the checkbox. When the checkbox will be selected this value will become active and it will be reflected back in the controller. The rest is just basic visualforce code.<\/p>\n<\/div>\n\n\n\n<div class=\"wk-index-wrap\"><h3 class=\"index-title\">Output<\/h3><\/div><div class=\"margin-bottom-50\">\n<p>The output of my code will be something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/0s3gx7yjgueuerk.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" width=\"1300\" height=\"1444\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/0s3gx7yjgueuerk.jpg\" alt=\"\" class=\"wp-image-92901\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/0s3gx7yjgueuerk.jpg 1300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/0s3gx7yjgueuerk-224x249.jpg 224w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/0s3gx7yjgueuerk-270x300.jpg 270w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/0s3gx7yjgueuerk-768x853.jpg 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/0s3gx7yjgueuerk-922x1024.jpg 922w\" sizes=\"(max-width: 1300px) 100vw, 1300px\" loading=\"lazy\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wk-index-wrap\"><h3 class=\"index-title\">Support<\/h3><\/div><div class=\"margin-bottom-50\">\n<p>That\u2019s all about using wrapper class, for any further queries feel free to add a ticket at:<\/p>\n\n\n\n<p><a href=\"https:\/\/webkul.uvdesk.com\/en\/customer\/create-ticket\/\">https:\/\/webkul.uvdesk.com\/en\/customer\/create-ticket\/<\/a><\/p>\n\n\n\n<p>Or let us know your views on how to make this code better, in comments section below.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Any Salesforce developer would be familiar with creating parent child relationship queries in APEX. For example getting a list of products with their respective prices we use such queries. However when we take that data to Visualforce pages it becomes a little bit hectic to show that data. This problem can be solved with the <a href=\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":144,"featured_media":92902,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1889,1887,1888],"tags":[1884,1885,1933,5298],"class_list":["post-92899","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apex","category-salesforce","category-visualforce","tag-apex","tag-salesforce","tag-visualforce","tag-wrapper-class"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use a wrapper class in APEX to store various types of values.<\/title>\n<meta name=\"description\" content=\"How to use a wrapper class in APEX to store various types of values. Any Salesforce developer would be familiar with creating parent child relationship...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use a wrapper class in APEX to store various types of values.\" \/>\n<meta property=\"og:description\" content=\"How to use a wrapper class in APEX to store various types of values. Any Salesforce developer would be familiar with creating parent child relationship...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-14T16:01:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-16T13:38:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png\" \/>\n\t<meta property=\"og:image:width\" content=\"825\" \/>\n\t<meta property=\"og:image:height\" content=\"260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Yathansh Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yathansh Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\"},\"author\":{\"name\":\"Yathansh Sharma\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/2cf74c97cc99e81430138433b2e5a342\"},\"headline\":\"How to write a wrapper class in APEX\",\"datePublished\":\"2017-08-14T16:01:54+00:00\",\"dateModified\":\"2021-07-16T13:38:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\"},\"wordCount\":389,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png\",\"keywords\":[\"Apex\",\"Salesforce\",\"Visualforce\",\"Wrapper class\"],\"articleSection\":[\"Apex\",\"Salesforce\",\"Visualforce\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\",\"url\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\",\"name\":\"How to use a wrapper class in APEX to store various types of values.\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png\",\"datePublished\":\"2017-08-14T16:01:54+00:00\",\"dateModified\":\"2021-07-16T13:38:39+00:00\",\"description\":\"How to use a wrapper class in APEX to store various types of values. Any Salesforce developer would be familiar with creating parent child relationship...\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png\",\"width\":825,\"height\":260},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to write a wrapper class in APEX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/2cf74c97cc99e81430138433b2e5a342\",\"name\":\"Yathansh Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/631dfbfdb0f359990ee300274cf444e7dc7da6005653e2b711d3c9197caa4ab3?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/631dfbfdb0f359990ee300274cf444e7dc7da6005653e2b711d3c9197caa4ab3?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Yathansh Sharma\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/yathansh-sharma081\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to use a wrapper class in APEX to store various types of values.","description":"How to use a wrapper class in APEX to store various types of values. Any Salesforce developer would be familiar with creating parent child relationship...","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:\/\/webkul.com\/blog\/write-wrapper-class-apex\/","og_locale":"en_US","og_type":"article","og_title":"How to use a wrapper class in APEX to store various types of values.","og_description":"How to use a wrapper class in APEX to store various types of values. Any Salesforce developer would be familiar with creating parent child relationship...","og_url":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2017-08-14T16:01:54+00:00","article_modified_time":"2021-07-16T13:38:39+00:00","og_image":[{"width":825,"height":260,"url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png","type":"image\/png"}],"author":"Yathansh Sharma","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Yathansh Sharma","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/"},"author":{"name":"Yathansh Sharma","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/2cf74c97cc99e81430138433b2e5a342"},"headline":"How to write a wrapper class in APEX","datePublished":"2017-08-14T16:01:54+00:00","dateModified":"2021-07-16T13:38:39+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/"},"wordCount":389,"commentCount":2,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage"},"thumbnailUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png","keywords":["Apex","Salesforce","Visualforce","Wrapper class"],"articleSection":["Apex","Salesforce","Visualforce"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/","url":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/","name":"How to use a wrapper class in APEX to store various types of values.","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage"},"thumbnailUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png","datePublished":"2017-08-14T16:01:54+00:00","dateModified":"2021-07-16T13:38:39+00:00","description":"How to use a wrapper class in APEX to store various types of values. Any Salesforce developer would be familiar with creating parent child relationship...","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2017\/08\/download-12.png","width":825,"height":260},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/write-wrapper-class-apex\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to write a wrapper class in APEX"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/2cf74c97cc99e81430138433b2e5a342","name":"Yathansh Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/631dfbfdb0f359990ee300274cf444e7dc7da6005653e2b711d3c9197caa4ab3?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/631dfbfdb0f359990ee300274cf444e7dc7da6005653e2b711d3c9197caa4ab3?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Yathansh Sharma"},"url":"https:\/\/webkul.com\/blog\/author\/yathansh-sharma081\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/92899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/144"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=92899"}],"version-history":[{"count":3,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/92899\/revisions"}],"predecessor-version":[{"id":296617,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/92899\/revisions\/296617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media\/92902"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=92899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=92899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=92899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}