{"id":9884,"date":"2013-10-08T22:11:36","date_gmt":"2013-10-08T20:11:36","guid":{"rendered":"http:\/\/flaven.fr\/?p=9884"},"modified":"2013-10-12T15:00:04","modified_gmt":"2013-10-12T13:00:04","slug":"jquery-template-plugin-api-json-utiliser-un-systeme-de-template-jquery-pour-consommer-des-json-afin-de-valider-des-maquettes-html","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2013\/10\/jquery-template-plugin-api-json-utiliser-un-systeme-de-template-jquery-pour-consommer-des-json-afin-de-valider-des-maquettes-html\/","title":{"rendered":"jQuery, Template, Plugin, API, json &#8211; Utiliser un syst\u00e8me de template jQuery pour consommer des json afin de valider des maquettes HTML"},"content":{"rendered":"<p><!--  jQuery, Template, Plugin, API, json - Utiliser un syst\u00e8me de template jQuery pour consommer des json afin de valider des maquettes HTML --><br \/>\n\t<!--  jQuery, Template, Plugin, PHP, Mustache, API, HTML, d\u00e9veloppement, validation, maquette, UX, Agile  --><\/p>\n<p>  Une des choses les plus ennuyeuses si vous travaillez sur une API qui vous fournit essentiellement des flux JSON, c&#8217;est la difficult\u00e9 \u00e0 valider la pertinence des r\u00e8gles fonctionnelles concernant la g\u00e9n\u00e9ration de ces m\u00eames flux.<br \/>\n  En clair, si le flux JSON est cens\u00e9 vous retourner les derniers articles publi\u00e9s de la cat\u00e9gorie &#8220;Mobile&#8221; taggu\u00e9s &#8220;Android&#8221; et &#8220;Apple&#8221;, il vaut bien mieux pouvoir visualiser le rendu HTML beaucoup plus facile \u00e0 valider d&#8217;un point de vue \u00e9ditorial (on dit aussi m\u00e9tier) qu&#8217;un pauvre flux JSON. On ne peut valider souvent que ce que l&#8217;on voit, c&#8217;est humain !. C&#8217;est donc une approche plus <b>UX oriented<\/b> et donc plus <b>agile<\/b>.<\/p>\n<p>  <b>Cette d\u00e9marche est tout particuli\u00e8rement int\u00e9ressante pour les Graphistes\/Int\u00e9grateurs\/UX designers qui souhaitent faire valider une int\u00e9gration de maquettes ou d&#8217;IHM. En effet, la dichotomie entre le contenu affich\u00e9 (images, texte, lien&#8230;etc.) et le sc\u00e9nario utilisateurs ou l&#8217;exp\u00e9rience UX est parfaite. On peut donc faire \u00e9voluer ces deux \u00e9l\u00e9ments essentiels que sont le contenu et le design en parall\u00e8le et sans interf\u00e9rences (on dit plus commun\u00e9ment des bugs)<\/b><\/p>\n<p>  C&#8217;est pour cette raison que dans cet article, on va s&#8217;int\u00e9resser aux template jQuery afin de r\u00e9sorber facilement cette difficult\u00e9. <\/p>\n<p>  Une raison aux choix de JQuery que PHP pour d\u00e9coder du JSON :<\/p>\n<ul>\n<li>C&#8217;est client-side et non server-side. Vous n&#8217;\u00eates pas dans l&#8217;obligation de faire tourner le tout sur un serveur m\u00eame en local pour g\u00e9n\u00e9rer vos rendus HTML comme pour PHP par exemple. On peut donc envoyer le tout au client\/m\u00e9tier et lui faire valider par simple chargement dans un navigateur.<\/li>\n<\/ul>\n<p>Vous pourriez rencontrer un probl\u00e8me lorsque vous essayez de lire le document JSON si vous ne mettez pas ce code sur un serveur. Pour des raisons de s\u00e9curit\u00e9 certains navigateurs tel que Google Chrome ne vous permettent pas de charger des fichiers externes sur les dossiers locaux. Si vous devez charger un fichier <code>.json<\/code> en local, le mieux est donc d&#8217;utiliser firefox, safari ou tout simplement charger le fichier appelant la source de donn\u00e9es au format <code>.json<\/code> sur un serveur en local type <code>WAMP<\/code>, <code>MAMP<\/code> ou <code>EASYPHP<\/code>.<\/p>\n<p><b>Dans la s\u00e9rie des syst\u00e8me de template, on publiera tr\u00e8s prochainement un article sur un framework de template nomm\u00e9 <code>mustache<\/code> mais bon l&#8217;instant, on part avec le plus \u00e9vident et le plus facile, \u00e0 savoir jQuery et des plugins bien choisis.<\/b><\/p>\n<p><b>On va utiliser pour cette d\u00e9monstration bien \u00e9videmment deux ressources essentielles : jQuery et le plugin jQuery Templates.<\/b><\/p>\n<ul>\n<li>Le framework jquery-1.10.2.min.js<br \/><a href=\"http:\/\/code.jquery.com\/jquery-1.10.2.min.js\" target=\"_blank\">http:\/\/code.jquery.com\/jquery-1.10.2.min.js<\/a><\/li>\n<li>Le plugin jQuery : jQuery Templates Plugin 1.0.0pre<br \/><a href=\"http:\/\/github.com\/jquery\/jquery-tmpl\" target=\"_blank\">http:\/\/github.com\/jquery\/jquery-tmpl<\/a><\/li>\n<\/ul>\n<h4>Utiliser une source <code>.json<\/code> avec une template jQuery<\/h4>\n<ul>\n<li><code>ajax_1.html<\/code><br \/>\n    Page dont la source est un fichier <code>.json<\/code>.\n    <\/li>\n<li><code>ajax_if_2.html<\/code><br \/>\n    Page dont la source est un fichier <code>.json<\/code> avec une condition <code>if<\/code> sur l&#8217;affichage de l&#8217;image par d\u00e9faut.\n    <\/li>\n<\/ul>\n<p><b>Chargement de <code>ajax_1.html<\/code><\/b><br \/>\n  <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2013\/10\/jquery_json_1.jpg\" alt=\"jQuery, Template, Plugin, API, json - Utiliser un syst\u00e8me de template jQuery pour consommer des json afin de valider des maquettes HTML\" width=\"500\" height=\"313\"><\/p>\n<p><b>Chargement de <code>ajax_if_2.html<\/code><\/b><br \/>\n  <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2013\/10\/jquery_json_3.jpg\" alt=\"jQuery, Template, Plugin, API, json - Utiliser un syst\u00e8me de template jQuery pour consommer des json afin de valider des maquettes HTML\" width=\"500\" height=\"313\"><\/p>\n<p>  <b><code>data.json<\/code> pour <code>ajax_if_2.html<\/code><\/b><br \/>\n  La source de donn\u00e9es au format <code>.json<\/code> dans le cas de <code>ajax_if_2.html<\/code>.<\/p>\n<pre lang=\"javascript\" escaped=\"true\">\r\n    {\r\n       \"books\" : [\r\n          {\r\n      \t\t\t\"imgSrc\":\"cover1.jpg\",\r\n      \t\t\t\"title\":\"Captain America\",\r\n      \t\t\t\"description\":\"Stars and Stripes jusqu'au slip\",\r\n      \t\t\t\"year\":\"2010\",\r\n      \t\t\t\"number\":\"1\"\r\n          },\r\n          {\r\n      \t\t\t\"imgSrc\":\"cover2.jpg\",\r\n      \t\t\t\"title\":\"Rescue\",\r\n      \t\t\t\"description\":\"La vierge de fer\",\r\n      \t\t\t\"year\":\"2011\",\r\n      \t\t\t\"number\":\"2\"\r\n          },\r\n          {\r\n    \t\t\t\t\"imgSrc\":\"cover3.jpg\",\r\n     \t\t\t\t\"title\":\"Hulk\",\r\n     \t\t\t\t\"description\":\"Eco warrior\",\r\n     \t\t\t\t\"year\":\"2012\",\r\n     \t\t\t\t\"number\":\"3\"\r\n          }\r\n       ]\r\n    }\r\n  <\/pre>\n<p>  <b><code>ajax_1.html<\/code><\/b><\/p>\n<pre lang=\"html\" escaped=\"true\">\r\n    &lt;!DOCTYPE html PUBLIC &quot;-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN&quot;\r\n       &quot;http:\/\/www.w3.org\/TR\/html4\/loose.dtd&quot;&gt;\r\n\r\n    &lt;html lang=&quot;en&quot;&gt;\r\n    &lt;head&gt;\r\n    \t&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text\/html; charset=utf-8&quot;&gt;\r\n    \t&lt;title&gt;jQuery Template&lt;\/title&gt;\r\n    &lt;style type=&quot;text\/css&quot;&gt;\r\n    \/*\r\n    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r\n      Styling\r\n    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n    *\/\r\n    body {\r\n      font-family: Tahoma,Trebuchet,Arial,Verdana,&quot;Bitstream Vera Sans&quot;,sans-serif;\r\n      font-size: 12px;\r\n    \tbackground-color: #fff;\r\n    \tpadding: 10px;\r\n    \tmargin: 5px 8px 13px 0;\r\n    \twidth: 90%;\r\n    }\r\n\r\n    .book {\r\n      background:#efefef;\r\n      width:200px;\r\n      position: relative;\r\n      padding: 20px 20px 20px 20px;\r\n      margin: 0px 20px 0px 0px;\r\n      display: inline-block;\r\n      -webkit-box-shadow: 1px 1px 7px -4px rgba(0, 0, 0, 0.25);\r\n    \t-moz-box-shadow: 1px 1px 7px -4px rgba(0, 0, 0, 0.25);\r\n    \tbox-shadow: 1px 1px 7px -4px rgba(0, 0, 0, 0.25);\r\n    }\r\n    .book img {\r\n      background-color: #F6F6F6;\r\n      border: 1px solid #CFCFCF;\r\n      padding: 12px;  \r\n    }\r\n    .book h3 {\r\n        font-size:24px;\r\n    }\r\n\r\n    .book .description {\r\n        font-size: 14px;\r\n        text-align: left;\r\n        margin: 10px 0;\r\n        padding: 0;\r\n    }\r\n\r\n    &lt;\/style&gt;\r\n    &lt;\/head&gt;\r\n    &lt;body&gt;\r\n    &lt;div id=&quot;output&quot;&gt; &lt;\/div&gt;\r\n    &lt;script src=&quot;_static\/js\/jquery-1.10.2.min.js&quot;&gt;&lt;\/script&gt; \r\n    &lt;script src=&quot;_static\/js\/plugins.js&quot;&gt;&lt;\/script&gt; \r\n    &lt;script&gt;\r\n      $(document).ready( \r\n    \tfunction(){\t\r\n    \t\tvar PopulateBook = function(data){\r\n    \t\t\tconsole.log(data.books);\r\n    \t\t\t$(&quot;#catalogue&quot;).tmpl(data.books).appendTo( &quot;#output&quot; );\r\n    \t\t}\r\n    \t\t$.ajax({\r\n    \t\t\t\ttype: &#x27;get&#x27;,\r\n    \t\t\t\turl: &#x27;data.json&#x27;,\r\n    \t\t\t\tsuccess : PopulateBook,\r\n    \t\t\t\tdataType: &quot;json&quot;\r\n    \t\t  \t\t}\r\n    \t\t\t)\r\n    \t\t}\r\n    \t);\r\n    &lt;\/script&gt; \r\n    &lt;!-- end scripts --&gt; \r\n    &lt;script id=&quot;catalogue&quot; type=&quot;text\/x-jquery-tmpl&quot;&gt;\r\n    \t&lt;div class=&quot;book&quot;&gt;&lt;img src=&quot;${imgSrc}&quot; \/&gt;\r\n    \t\t&lt;div class=&quot;details&quot;&gt;\r\n    \t\t\t&lt;div class=&quot;title&quot;&gt;\r\n    \t\t\t\t&lt;h3&gt;${title}&lt;\/h3&gt;\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t\t&lt;div class=&quot;description&quot;&gt;\r\n    \t\t\t\t&lt;strong&gt;Description :&lt;\/strong&gt; ${description}\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t\t&lt;div class=&quot;year&quot;&gt;\r\n    \t\t\t\t&lt;strong&gt;Ann&eacute;e :&lt;\/strong&gt; ${year}\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t\t&lt;div class=&quot;number&quot;&gt;\r\n    \t\t\t\t&lt;strong&gt;Num&eacute;ro du magazine :&lt;\/strong&gt; ${number}\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t\t&lt;div class=&quot;themes&quot;&gt;\r\n    \t\t\t&lt;ul&gt;\r\n    {{each themes}}\r\n    \t\t\t\t&lt;li&gt;${$value}&lt;\/li&gt;\r\n    \t\t\t{{\/each}}\r\n    &lt;\/ul&gt;\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t&lt;\/div&gt;\r\n    \t&lt;\/div&gt;\r\n    &lt;\/script&gt;\r\n    &lt;\/body&gt;\r\n    &lt;\/html&gt;\r\n  <\/pre>\n<p>  <b><code>data.json<\/code> pour <code>ajax_if_2.html<\/code><\/b><br \/>\n  La source de donn\u00e9es au format <code>.json<\/code> dans le cas de <code>ajax_if_2.html<\/code>.<\/p>\n<pre lang=\"javascript\" escaped=\"true\">\r\n    {\r\n       \"books\" : [\r\n          {\r\n      \t\t\t\"imgSrc\":\"cover1.jpg\",\r\n      \t\t\t\"title\":\"Captain America\",\r\n      \t\t\t\"description\":\"Stars and Stripes jusqu'au slip\",\r\n      \t\t\t\"year\":\"2010\",\r\n      \t\t\t\"number\":\"1\"\r\n          },\r\n          {\r\n      \t\t\t\"imgSrc\":\"cover2.jpg\",\r\n      \t\t\t\"title\":\"Rescue\",\r\n      \t\t\t\"description\":\"La vierge de fer\",\r\n      \t\t\t\"year\":\"2011\",\r\n      \t\t\t\"number\":\"2\"\r\n          },\r\n          {\r\n    \t\t\t\t\"imgSrc\":\"\",\r\n     \t\t\t\t\"title\":\"Hulk\",\r\n     \t\t\t\t\"description\":\"Eco warrior\",\r\n     \t\t\t\t\"year\":\"2012\",\r\n     \t\t\t\t\"number\":\"3\"\r\n          }\r\n       ]\r\n    }\r\n  <\/pre>\n<p>  <b><code>ajax_if_2.html<\/code><\/b><\/p>\n<pre lang=\"html\" escaped=\"true\">\r\n    &lt;!DOCTYPE html PUBLIC &quot;-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN&quot;\r\n       &quot;http:\/\/www.w3.org\/TR\/html4\/loose.dtd&quot;&gt;\r\n\r\n    &lt;html lang=&quot;en&quot;&gt;\r\n    &lt;head&gt;\r\n    \t&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text\/html; charset=utf-8&quot;&gt;\r\n    \t&lt;title&gt;jQuery Template&lt;\/title&gt;\r\n    &lt;style type=&quot;text\/css&quot;&gt;\r\n    \/*\r\n    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \r\n      Styling\r\n    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n    *\/\r\n    body {\r\n      font-family: Tahoma,Trebuchet,Arial,Verdana,&quot;Bitstream Vera Sans&quot;,sans-serif;\r\n      font-size: 12px;\r\n    \tbackground-color: #fff;\r\n    \tpadding: 10px;\r\n    \tmargin: 5px 8px 13px 0;\r\n    \twidth: 90%;\r\n    }\r\n\r\n    .book {\r\n      background:#efefef;\r\n      width:200px;\r\n      position: relative;\r\n      padding: 20px 20px 20px 20px;\r\n      margin: 0px 20px 0px 0px;\r\n      display: inline-block;\r\n      -webkit-box-shadow: 1px 1px 7px -4px rgba(0, 0, 0, 0.25);\r\n    \t-moz-box-shadow: 1px 1px 7px -4px rgba(0, 0, 0, 0.25);\r\n    \tbox-shadow: 1px 1px 7px -4px rgba(0, 0, 0, 0.25);\r\n    }\r\n    .book img {\r\n      background-color: #F6F6F6;\r\n      border: 1px solid #CFCFCF;\r\n      padding: 12px;  \r\n    }\r\n    .book h3 {\r\n        font-size:24px;\r\n    }\r\n\r\n    .book .description {\r\n        font-size: 14px;\r\n        text-align: left;\r\n        margin: 10px 0;\r\n        padding: 0;\r\n    }\r\n\r\n    &lt;\/style&gt;\r\n    &lt;\/head&gt;\r\n    &lt;body&gt;\r\n    &lt;div id=&quot;output&quot;&gt; &lt;\/div&gt;\r\n    &lt;script src=&quot;_static\/js\/jquery-1.10.2.min.js&quot;&gt;&lt;\/script&gt; \r\n    &lt;script src=&quot;_static\/js\/plugins.js&quot;&gt;&lt;\/script&gt; \r\n    &lt;script&gt;\r\n      $(document).ready( \r\n    \tfunction(){\t\r\n    \t\tvar PopulateBook = function(data){\r\n    \t\t\tconsole.log(data.books);\r\n    \t\t\t$(&quot;#catalogue&quot;).tmpl(data.books).appendTo( &quot;#output&quot; );\r\n    \t\t}\r\n    \t\t$.ajax({\r\n    \t\t\t\ttype: &#x27;get&#x27;,\r\n    \t\t\t\turl: &#x27;data.json&#x27;,\r\n    \t\t\t\tsuccess : PopulateBook,\r\n    \t\t\t\tdataType: &quot;json&quot;\r\n    \t\t  \t\t}\r\n    \t\t\t)\r\n    \t\t}\r\n    \t);\r\n    &lt;\/script&gt; \r\n    &lt;!-- end scripts --&gt; \r\n    &lt;script id=&quot;catalogue&quot; type=&quot;text\/x-jquery-tmpl&quot;&gt;\r\n    \t&lt;div class=&quot;book&quot;&gt;\r\n      {{if imgSrc}}\r\n    \t\t&lt;img src=&quot;${imgSrc}&quot; \/&gt;\r\n    \t{{else}}\r\n    \t\t&lt;img src=&quot;default.jpg&quot; \/&gt;\r\n    \t{{\/if}}\r\n    \t\t&lt;div class=&quot;details&quot;&gt;\r\n    \t\t\t&lt;div class=&quot;title&quot;&gt;\r\n    \t\t\t\t&lt;h3&gt;${title}&lt;\/h3&gt;\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t\t&lt;div class=&quot;description&quot;&gt;\r\n    \t\t\t\t&lt;strong&gt;Description :&lt;\/strong&gt; ${description}\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t\t&lt;div class=&quot;year&quot;&gt;\r\n    \t\t\t\t&lt;strong&gt;Ann&eacute;e :&lt;\/strong&gt; ${year}\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t\t&lt;div class=&quot;number&quot;&gt;\r\n    \t\t\t\t&lt;strong&gt;Num&eacute;ro du magazine :&lt;\/strong&gt; ${number}\r\n    \t\t\t&lt;\/div&gt;\r\n    \t\t&lt;\/div&gt;\r\n    \t&lt;\/div&gt;\r\n    &lt;\/script&gt;\r\n    &lt;\/body&gt;\r\n    &lt;\/html&gt;\r\n  <\/pre>\n<p>  <b>Conclusion :<\/b> Il existe de nombreux avantages \u00e0 utiliser un syst\u00e8me de templates \u00e0 l&#8217;aide de jQuery. Le premier d&#8217;\u00e9vidence comme dans tout syst\u00e8me de template est de s\u00e9parer le contenu de l&#8217;UX, de l&#8217;exp\u00e9rience utilisateur (comportement des pages). On peut donc affiner, valider, de mani\u00e8re agile, les r\u00e8gles fonctionnelles par un grand nombre d&#8217;it\u00e9rations rapides, le tout c\u00f4t\u00e9 client\/m\u00e9tier sans avoir \u00e0 passer par une boucle de d\u00e9veloppement chronophage.<\/p>\n<h2>En savoir plus<\/h2>\n<ul>\n<li>Convert JSON in JavaScript<br \/><a href=\"http:\/\/coursesweb.net\/javascript\/convert-json-javascript\" target=\"_blank\">http:\/\/coursesweb.net\/javascript\/convert-json-javascript<\/a><\/li>\n<li>Comment traiter du JSON pour produire du HTML en Javascript ?<br \/><a href=\"http:\/\/blog.touv.fr\/2008\/11\/comment-traiter-du-json-pour-produire.html\" target=\"_blank\">http:\/\/blog.touv.fr\/2008\/11\/comment-traiter-du-json-pour-produire.html<\/a><\/li>\n<li>How To Read JSON Using JQuery<br \/><a href=\"http:\/\/webhole.net\/2009\/11\/28\/how-to-read-json-with-javascript\/\t\t\" target=\"_blank\">http:\/\/webhole.net\/2009\/11\/28\/how-to-read-json-with-javascript\/\t\t<\/a><\/li>\n<li>Le plugin jQuery : jQuery Templates Plugin 1.0.0pre<br \/><a href=\"http:\/\/github.com\/jquery\/jquery-tmpl\" target=\"_blank\">http:\/\/github.com\/jquery\/jquery-tmpl<\/a><\/li>\n<li>Le framework jquery-1.10.2.min.js<br \/><a href=\"http:\/\/code.jquery.com\/jquery-1.10.2.min.js\" target=\"_blank\">http:\/\/code.jquery.com\/jquery-1.10.2.min.js<\/a><\/li>\n<li>jQuery<br \/><a href=\"http:\/\/jquery.com\/\" target=\"_blank\">http:\/\/jquery.com\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Une des choses les plus ennuyeuses si vous travaillez sur une API qui vous fournit essentiellement des flux JSON, c&#8217;est la difficult\u00e9 \u00e0 valider la&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2013\/10\/jquery-template-plugin-api-json-utiliser-un-systeme-de-template-jquery-pour-consommer-des-json-afin-de-valider-des-maquettes-html\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">jQuery, Template, Plugin, API, json &#8211; Utiliser un syst\u00e8me de template jQuery pour consommer des json afin de valider des maquettes HTML<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":9889,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Utilisez un syst\u00e8me de template jQuery pour consommer des JSON et valider des maquettes HTML. Outils et r\u00e9sultats pour une approche UX et agile.","bf_ai_og_title":"Utiliser Template jQuery pour JSON","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3439,3437,3444,3447,3449,3451,3435],"tags":[],"class_list":["post-9884","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apis-integration","category-business-case-studies","category-programming-databases","category-technology-trends","category-tutorials-how-to","category-web-design-front-end","category-web-development"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-2zq","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2013\/10\/jquery_json_bf.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/9884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=9884"}],"version-history":[{"count":2,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/9884\/revisions"}],"predecessor-version":[{"id":9890,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/9884\/revisions\/9890"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/9889"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=9884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=9884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=9884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}