{"id":3320,"date":"2021-12-12T19:20:23","date_gmt":"2021-12-12T18:20:23","guid":{"rendered":"https:\/\/texei.com\/?p=3320"},"modified":"2024-04-17T16:45:44","modified_gmt":"2024-04-17T14:45:44","slug":"day-12-manage-nested-object-in-your-lightning-web-components","status":"publish","type":"post","link":"https:\/\/texei.com\/en\/advices\/day-12-manage-nested-object-in-your-lightning-web-components\/","title":{"rendered":"Day 12\u00a0: Manage nested Object in your Lightning Web Components"},"content":{"rendered":"\r\n\r\n\r\n<h2 class=\"graf graf--h3 wp-block-heading\">What\u2019s new today?<\/h2>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">Wrapper Class gives extra flexibility to Salesforce developers. A wrapper or container class is a data structure that contains different objects or collections of objects as its members. We all have used it in Visualforce pages, Lightning Aura Component and now in Lightning Web Component.<\/p>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">These types of objects are generally <strong class=\"markup--strong markup--p-strong\"><em class=\"markup--em markup--p-em\">nested objects<\/em><\/strong>.<\/p>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">But, as you know, since winter 20, security for immutable @api properties has been increased for LWC. Each Object\u2019s elements are read-only to prevent modification so that the cache can\u2019t be corrupted by references. If you try it, you will see this error :<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted graf graf--pre has-background\" style=\"background-color: #e1e6ea;\">[LWC component\u2019s <a class=\"markup--anchor markup--pre-anchor\" title=\"Twitter profile for @wire\" href=\"http:\/\/twitter.com\/wire\" target=\"_blank\" rel=\"noopener\" data-href=\"http:\/\/twitter.com\/wire\">@wire<\/a> target property or method threw an error during value provisioning. Original error:\u00a0<br \/><span style=\"background-color: #e1e6ea; font-family: Consolas, Monaco, monospace;\">[Cannot assign to read only property \u2018Phone\u2019 of object \u2018#&lt;Object&gt;\u2019]]<\/span><\/pre>\r\n<p class=\"graf graf--p\">To fix it, you have to copy the elements using <strong class=\"markup--strong markup--p-strong\">the spread operator (\u2026)<\/strong>, or <strong class=\"markup--strong markup--p-strong\">Object.assign<\/strong> into a new object but you will remove the read-only properties of <strong class=\"markup--strong markup--p-strong\">all top-level<\/strong> elements. If you want to change a property of an object in an object in an object etc\u2026 (<strong class=\"markup--strong markup--p-strong\">nested object<\/strong>) it is not so easy and you have to copy all the nested object\u2019s elements.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">For every project I worked on, I got used to create in my LWC javascript utility lib the <strong class=\"markup--strong markup--p-strong\">two functions<\/strong> below to simulate a custom <strong class=\"markup--strong markup--p-strong\">Object.assign<\/strong> for <strong class=\"markup--strong markup--p-strong\">nested objects<\/strong>.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\r\n<pre class=\"wp-block-preformatted graf graf--pre style= has-background\" style=\"background-color: #e1e6ea;\">\/**********************************************\r\n* Two functions to set a value of nested items\r\n* key string descriptor inside an Object.\r\n**********************************************\/\r\nconst setNestedKey = (obj, path, value) =&gt; {\r\n  if (path.length === 1) {\r\n    let key = path[0];\r\n    if (Array.isArray(obj)) {\r\n      let table = [...obj];\r\n      table.splice(key, 1, value);\r\n      obj = [...table];\r\n      return obj;\r\n    }\r\n    obj = { ...obj, [key]: value }\r\n    return obj;\r\n  }\r\n  return setNestedKey(obj[path[0]], path.slice(1), value)\r\n}\r\n\r\nconst assignObject = (obj, path, value) =&gt; {\r\n  \/\/ Protect against being something unexpected\r\n  obj = typeof obj === 'object' ? obj : {};\r\n  \/\/ Split the path into and array if its not one already\r\n  let keys = Array.isArray(path) ? path : path.split('.');\r\n  let newObj = setNestedKey(obj, keys, value);\r\n  if (keys.length === 1) {\r\n    return newObj;\r\n  }\r\n  keys.pop();\r\n  return assignObject(obj, keys, newObj);\r\n}\r\n\/**********************************************\/<\/pre>\r\n\r\n\r\n\r\n<h2>Let me show you how to use them<\/h2>\r\n<\/div>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">For example, if you have this <strong class=\"markup--strong markup--p-strong\">nested object<\/strong> below :<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted graf graf--pre has-background\" style=\"background-color: #e1e6ea;\">let myAccounts = [\r\n  {\r\n    name : 'account name 1',\r\n    contact : [\r\n      {\r\n        firstName : 'first name 1',\r\n        lastName : 'last name 1'\r\n      },\r\n      {\r\n        firstName : 'first name 2',\r\n        lastName : 'last name 2'\r\n      }\r\n    ]\r\n  },\r\n  {\r\n    name : 'account name 2',\r\n    contact : [\r\n      {\r\n        firstName : 'first name 1',\r\n        lastName : 'last name 1'\r\n      },\r\n      {\r\n        firstName : 'first name 2',\r\n        lastName : 'last name 2'\r\n      }\r\n    ]\r\n  }\r\n];<\/pre>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">to change the contact last name 2 of account name 2, you can use the <strong class=\"markup--strong markup--p-strong\">assignObject<\/strong> function like this\u00a0:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted graf graf--pre has-background\" style=\"background-color: #e1e6ea;\">myAccounts = assignObject(myAccounts,'1.contact.1.lastName','new last name');<\/pre>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">and you can also add a new contact like this :<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted graf graf--pre has-background\" style=\"background-color: #e1e6ea;\">myAccounts = assignObject(myAccounts,'1.contact',\r\n  {\r\n    firstName : 'first name 3',\r\n    lastName : 'last name 3'\r\n  }\r\n);<\/pre>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">I think it is very <strong>useful<\/strong> and hope you will like these utility functions!<\/p>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">You can learn more about LWC properties security here\u00a0:<\/p>\r\n\r\n\r\n\r\n<ul class=\"postList wp-block-list\">\r\n<li><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/github.com\/salesforce\/observable-membrane\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/github.com\/salesforce\/observable-membrane\">https:\/\/github.com\/salesforce\/observable-membrane<\/a><\/li>\r\n<li>https:\/\/developer.salesforce.com\/docs\/component-library\/documentation\/en\/lwc\/lwc.create_components_data_flow<\/li>\r\n<\/ul>\r\n<p>Join us tomorrow for more fun with Texe\u00ef\u2019s Advent Calendar! &#x1f381;<\/p>\r\n<p>Want to learn more about Lightning? So, don&#8217;t miss our articles <a href=\"https:\/\/texei.com\/conseils\/refresh-a-record-page-from-a-lightning-web-component\/\" target=\"_blank\" rel=\"noopener\">Refresh a record page from a Lightning web component<\/a> and <a href=\"https:\/\/texei.com\/news-salesforce\/from-visualforce-to-lightning-development\/\" target=\"_blank\" rel=\"noopener\">From Visualforce to Lightning Development<\/a>.\u00a0<\/p>\r\n\r\n\r\n\r\n<p class=\"graf graf--p\">#Texei #SalesForce #AwesomeDeveloper<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>What\u2019s new today? Wrapper Class gives extra flexibility to Salesforce developers. A wrapper or container class is a data structure that contains different objects or collections of objects as its members. We all have used it in Visualforce pages, Lightning Aura Component and now in Lightning Web Component. These types of objects are generally nested [&hellip;]<\/p>\n","protected":false},"author":43,"featured_media":3323,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[150],"tags":[310],"class_list":["post-3320","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conseils","tag-salesforce-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Day 12\u00a0: Manage nested Object in your Lightning Web Components - Texe\u00ef<\/title>\n<meta name=\"description\" content=\"Learn more about Lightning Web Components and nested objects in this article written by our Salesforce experts.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Day 12\u00a0: Manage nested Object in your Lightning Web Components\" \/>\n<meta property=\"og:description\" content=\"Learn more about Lightning Web Components and nested objects in this article written by our Salesforce experts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/\" \/>\n<meta property=\"og:site_name\" content=\"Texe\u00ef\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-12T18:20:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-17T14:45:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"931\" \/>\n\t<meta property=\"og:image:height\" content=\"620\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Mathieu Demuynck\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/\"},\"author\":{\"name\":\"Mathieu Demuynck\",\"@id\":\"https:\/\/texei.com\/#\/schema\/person\/81beba37360b74a432dc70d8046f830a\"},\"headline\":\"Day 12\u00a0: Manage nested Object in your Lightning Web Components\",\"datePublished\":\"2021-12-12T18:20:23+00:00\",\"dateModified\":\"2024-04-17T14:45:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/\"},\"wordCount\":361,\"publisher\":{\"@id\":\"https:\/\/texei.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg\",\"keywords\":[\"Salesforce\"],\"articleSection\":[\"Conseils\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/\",\"url\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/\",\"name\":\"Day 12\u00a0: Manage nested Object in your Lightning Web Components - Texe\u00ef\",\"isPartOf\":{\"@id\":\"https:\/\/texei.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg\",\"datePublished\":\"2021-12-12T18:20:23+00:00\",\"dateModified\":\"2024-04-17T14:45:44+00:00\",\"description\":\"Learn more about Lightning Web Components and nested objects in this article written by our Salesforce experts.\",\"breadcrumb\":{\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage\",\"url\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg\",\"contentUrl\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg\",\"width\":931,\"height\":620,\"caption\":\"Image d'une poup\u00e9e russe de No\u00ebl\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/texei.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advices\",\"item\":\"https:\/\/texei.com\/en\/category\/advices\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Day 12\u00a0: Manage nested Object in your Lightning Web Components\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/texei.com\/#website\",\"url\":\"https:\/\/texei.com\/\",\"name\":\"Texe\u00ef\",\"description\":\"Turn your IT into Business\",\"publisher\":{\"@id\":\"https:\/\/texei.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/texei.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/texei.com\/#organization\",\"name\":\"Texe\u00ef\",\"url\":\"https:\/\/texei.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/texei.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/03\/logo-essai-1.jpg\",\"contentUrl\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/03\/logo-essai-1.jpg\",\"width\":2560,\"height\":1102,\"caption\":\"Texe\u00ef\"},\"image\":{\"@id\":\"https:\/\/texei.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/texei.com\/#\/schema\/person\/81beba37360b74a432dc70d8046f830a\",\"name\":\"Mathieu Demuynck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/texei.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2022\/01\/avatar_user_43_1642692059-96x96.jpeg\",\"contentUrl\":\"https:\/\/texei.com\/dev\/wp-content\/uploads\/2022\/01\/avatar_user_43_1642692059-96x96.jpeg\",\"caption\":\"Mathieu Demuynck\"},\"url\":\"https:\/\/texei.com\/en\/author\/mathieu-d\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Day 12\u00a0: Manage nested Object in your Lightning Web Components - Texe\u00ef","description":"Learn more about Lightning Web Components and nested objects in this article written by our Salesforce experts.","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:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/","og_locale":"en_US","og_type":"article","og_title":"Day 12\u00a0: Manage nested Object in your Lightning Web Components","og_description":"Learn more about Lightning Web Components and nested objects in this article written by our Salesforce experts.","og_url":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/","og_site_name":"Texe\u00ef","article_published_time":"2021-12-12T18:20:23+00:00","article_modified_time":"2024-04-17T14:45:44+00:00","og_image":[{"width":931,"height":620,"url":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg","type":"image\/jpeg"}],"author":"Mathieu Demuynck","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#article","isPartOf":{"@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/"},"author":{"name":"Mathieu Demuynck","@id":"https:\/\/texei.com\/#\/schema\/person\/81beba37360b74a432dc70d8046f830a"},"headline":"Day 12\u00a0: Manage nested Object in your Lightning Web Components","datePublished":"2021-12-12T18:20:23+00:00","dateModified":"2024-04-17T14:45:44+00:00","mainEntityOfPage":{"@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/"},"wordCount":361,"publisher":{"@id":"https:\/\/texei.com\/#organization"},"image":{"@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage"},"thumbnailUrl":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg","keywords":["Salesforce"],"articleSection":["Conseils"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/","url":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/","name":"Day 12\u00a0: Manage nested Object in your Lightning Web Components - Texe\u00ef","isPartOf":{"@id":"https:\/\/texei.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage"},"image":{"@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage"},"thumbnailUrl":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg","datePublished":"2021-12-12T18:20:23+00:00","dateModified":"2024-04-17T14:45:44+00:00","description":"Learn more about Lightning Web Components and nested objects in this article written by our Salesforce experts.","breadcrumb":{"@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#primaryimage","url":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg","contentUrl":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/12\/poupeRusse.jpg","width":931,"height":620,"caption":"Image d'une poup\u00e9e russe de No\u00ebl"},{"@type":"BreadcrumbList","@id":"https:\/\/texei.com\/en\/conseils\/day-12-manage-nested-object-in-your-lightning-web-components\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/texei.com\/"},{"@type":"ListItem","position":2,"name":"Advices","item":"https:\/\/texei.com\/en\/category\/advices\/"},{"@type":"ListItem","position":3,"name":"Day 12\u00a0: Manage nested Object in your Lightning Web Components"}]},{"@type":"WebSite","@id":"https:\/\/texei.com\/#website","url":"https:\/\/texei.com\/","name":"Texe\u00ef","description":"Turn your IT into Business","publisher":{"@id":"https:\/\/texei.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/texei.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/texei.com\/#organization","name":"Texe\u00ef","url":"https:\/\/texei.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/texei.com\/#\/schema\/logo\/image\/","url":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/03\/logo-essai-1.jpg","contentUrl":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2021\/03\/logo-essai-1.jpg","width":2560,"height":1102,"caption":"Texe\u00ef"},"image":{"@id":"https:\/\/texei.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/texei.com\/#\/schema\/person\/81beba37360b74a432dc70d8046f830a","name":"Mathieu Demuynck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/texei.com\/#\/schema\/person\/image\/","url":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2022\/01\/avatar_user_43_1642692059-96x96.jpeg","contentUrl":"https:\/\/texei.com\/dev\/wp-content\/uploads\/2022\/01\/avatar_user_43_1642692059-96x96.jpeg","caption":"Mathieu Demuynck"},"url":"https:\/\/texei.com\/en\/author\/mathieu-d\/"}]}},"_links":{"self":[{"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/posts\/3320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/comments?post=3320"}],"version-history":[{"count":0,"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/posts\/3320\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/media\/3323"}],"wp:attachment":[{"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/media?parent=3320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/categories?post=3320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/texei.com\/en\/wp-json\/wp\/v2\/tags?post=3320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}