{"id":19655,"date":"2024-03-15T19:16:17","date_gmt":"2024-03-15T19:16:17","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/"},"modified":"2024-03-21T16:13:16","modified_gmt":"2024-03-21T16:13:16","slug":"what-is-the-difference-between-deep-copy-and-shallow-copy-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/","title":{"rendered":"What is the difference between deep copy and shallow copy in Java?"},"content":{"rendered":"<p>In Java, deep copy and shallow copy are two different ways of copying objects.<\/p>\n<p>Shallow copy refers to creating a new object and then copying the field values of the original object into the new object. The new object and the original object share the same child objects. In other words, if the original object has a field of a reference type, then the new object will reference the same child object.<\/p>\n<p>Deep copy refers to creating a new object and then copying the field values of the original object to the new object. The difference is that if the original object has a field of a reference type, then a new sub-object will be created for the new object and its values will be copied.<\/p>\n<p>Specifically, shallow copying only duplicates the values of an object, not the object&#8217;s subobjects. In contrast, deep copying not only duplicates an object&#8217;s values but also recursively duplicates the object&#8217;s subobjects.<\/p>\n<p>Here is an example code illustrating the difference between deep copy and shallow copy:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Person<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title class_\">Cloneable<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> String name;\r\n    <span class=\"hljs-keyword\">private<\/span> Address address;\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title function_\">Person<\/span><span class=\"hljs-params\">(String name, Address address)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.name = name;\r\n        <span class=\"hljs-built_in\">this<\/span>.address = address;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title function_\">getName<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> name;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> Address <span class=\"hljs-title function_\">getAddress<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> address;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">setAddress<\/span><span class=\"hljs-params\">(Address address)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.address = address;\r\n    }\r\n    \r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">protected<\/span> Object <span class=\"hljs-title function_\">clone<\/span><span class=\"hljs-params\">()<\/span> <span class=\"hljs-keyword\">throws<\/span> CloneNotSupportedException {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">super<\/span>.clone();\r\n    }\r\n}\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Address<\/span> {\r\n    <span class=\"hljs-keyword\">private<\/span> String city;\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title function_\">Address<\/span><span class=\"hljs-params\">(String city)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.city = city;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title function_\">getCity<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> city;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">setCity<\/span><span class=\"hljs-params\">(String city)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.city = city;\r\n    }\r\n}\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Main<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> <span class=\"hljs-keyword\">throws<\/span> CloneNotSupportedException {\r\n        <span class=\"hljs-type\">Address<\/span> <span class=\"hljs-variable\">address<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Address<\/span>(<span class=\"hljs-string\">\"Beijing\"<\/span>);\r\n        <span class=\"hljs-type\">Person<\/span> <span class=\"hljs-variable\">person1<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Person<\/span>(<span class=\"hljs-string\">\"Alice\"<\/span>, address);\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u6d45\u62f7\u8d1d<\/span>\r\n        <span class=\"hljs-type\">Person<\/span> <span class=\"hljs-variable\">person2<\/span> <span class=\"hljs-operator\">=<\/span> (Person) person1.clone();\r\n        System.out.println(person1.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Beijing<\/span>\r\n        System.out.println(person2.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Beijing<\/span>\r\n        \r\n        <span class=\"hljs-comment\">\/\/ \u4fee\u6539 person2 \u7684 address<\/span>\r\n        person2.getAddress().setCity(<span class=\"hljs-string\">\"Shanghai\"<\/span>);\r\n        System.out.println(person1.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Shanghai<\/span>\r\n        System.out.println(person2.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Shanghai<\/span>\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u6df1\u62f7\u8d1d<\/span>\r\n        <span class=\"hljs-type\">Address<\/span> <span class=\"hljs-variable\">address2<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Address<\/span>(<span class=\"hljs-string\">\"Guangzhou\"<\/span>);\r\n        <span class=\"hljs-type\">Person<\/span> <span class=\"hljs-variable\">person3<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Person<\/span>(<span class=\"hljs-string\">\"Bob\"<\/span>, address2);\r\n        <span class=\"hljs-type\">Person<\/span> <span class=\"hljs-variable\">person4<\/span> <span class=\"hljs-operator\">=<\/span> (Person) person3.clone();\r\n        System.out.println(person3.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Guangzhou<\/span>\r\n        System.out.println(person4.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Guangzhou<\/span>\r\n        \r\n        <span class=\"hljs-comment\">\/\/ \u4fee\u6539 person4 \u7684 address<\/span>\r\n        person4.getAddress().setCity(<span class=\"hljs-string\">\"Shenzhen\"<\/span>);\r\n        System.out.println(person3.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Guangzhou<\/span>\r\n        System.out.println(person4.getAddress().getCity());  <span class=\"hljs-comment\">\/\/ Output: Shenzhen<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example above, person1 and person2 share the same Address object, so modifying person2&#8217;s address will also affect person1&#8217;s address. This is a characteristic of shallow copy.<\/p>\n<p>Person3 and Person4 have their own Address objects, so modifying Person4&#8217;s address will not affect Person3&#8217;s address. This is the characteristic of deep copy.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, deep copy and shallow copy are two different ways of copying objects. Shallow copy refers to creating a new object and then copying the field values of the original object into the new object. The new object and the original object share the same child objects. In other words, if the original object [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-19655","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the difference between deep copy and shallow copy in Java? - Blog - Silicon Cloud<\/title>\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.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the difference between deep copy and shallow copy in Java?\" \/>\n<meta property=\"og:description\" content=\"In Java, deep copy and shallow copy are two different ways of copying objects. Shallow copy refers to creating a new object and then copying the field values of the original object into the new object. The new object and the original object share the same child objects. In other words, if the original object [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T19:16:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T16:13:16+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Isabella Edwards\" \/>\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.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"What is the difference between deep copy and shallow copy in Java?\",\"datePublished\":\"2024-03-15T19:16:17+00:00\",\"dateModified\":\"2024-03-21T16:13:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/\"},\"wordCount\":242,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/\",\"name\":\"What is the difference between deep copy and shallow copy in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T19:16:17+00:00\",\"dateModified\":\"2024-03-21T16:13:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the difference between deep copy and shallow copy in Java?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is the difference between deep copy and shallow copy in Java? - Blog - Silicon Cloud","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.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/","og_locale":"en_US","og_type":"article","og_title":"What is the difference between deep copy and shallow copy in Java?","og_description":"In Java, deep copy and shallow copy are two different ways of copying objects. Shallow copy refers to creating a new object and then copying the field values of the original object into the new object. The new object and the original object share the same child objects. In other words, if the original object [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T19:16:17+00:00","article_modified_time":"2024-03-21T16:13:16+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"What is the difference between deep copy and shallow copy in Java?","datePublished":"2024-03-15T19:16:17+00:00","dateModified":"2024-03-21T16:13:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/"},"wordCount":242,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/","name":"What is the difference between deep copy and shallow copy in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T19:16:17+00:00","dateModified":"2024-03-21T16:13:16+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-difference-between-deep-copy-and-shallow-copy-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the difference between deep copy and shallow copy in Java?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=19655"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19655\/revisions"}],"predecessor-version":[{"id":53408,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19655\/revisions\/53408"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=19655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=19655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=19655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}