{"id":7220,"date":"2014-09-18T07:58:00","date_gmt":"2014-09-18T05:58:00","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=7220"},"modified":"2014-09-18T11:04:34","modified_gmt":"2014-09-18T09:04:34","slug":"json-el-sistema-mas-popular-de-intercambio-de-datos","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/json-el-sistema-mas-popular-de-intercambio-de-datos\/","title":{"rendered":"JSON, el sistema m\u00e1s popular de intercambio de datos."},"content":{"rendered":"<p style=\"text-align: justify;\">JSON es un subconjunto de la <strong>notaci\u00f3n literal de objetos<\/strong> de <strong>JavaScript<\/strong> que no requiere el uso de <a class=\"mw-redirect\" title=\"XML\" href=\"http:\/\/es.wikipedia.org\/wiki\/Extensible_Markup_Language\" target=\"_blank\">XML<\/a>. Pronunciado \u201c<strong>Ieison<\/strong>\u201d, <strong>JSON<\/strong> o<strong> notaci\u00f3n JSON, <\/strong>cuyo significado\u00a0en ingl\u00e9s es<strong>\u00a0<\/strong>(<strong>J<\/strong>ava<strong>S<\/strong>cript <strong>O<\/strong>bject <strong>N<\/strong>otation).<\/p>\n<p style=\"text-align: justify;\">Todas las grandes empresas lo emplean en sus comunicaciones. Permite ser integrado con diferentes lenguajes de programaci\u00f3n y plataformas.<\/p>\n<p style=\"text-align: justify;\">Durante mucho tiempo XML se convirti\u00f3 en el est\u00e1ndar de intercambio de datos. <strong>El problema era la gran \u00a0cantidad de datos que se emplean en los intercambios y flujos de peticiones de informaci\u00f3n entre diversos servicios.<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong>Con el fin de agilizar la transmisi\u00f3n de datos, el flujo, se emplearon nuevas formas de compresi\u00f3n y formatos<\/strong>.<br \/>\nJSON<strong> es m\u00e1s &#8220;ligero&#8221;<\/strong> (v\u00e9ase\u00a0referencia\u00a0inferior)<strong>, y peque\u00f1o a la hora de manejar datos, por eso es una alternativa a XML, es muy f\u00e1cil leer la informaci\u00f3n con \u00e9l<\/strong>.<\/p>\n<p style=\"text-align: justify;\">JSON es un <strong>formato de texto que hace f\u00e1cil la compartici\u00f3n de datos entre dispositivos cliente y servidor<\/strong>. Se basa en el funcionamiento de los objetos de JavaScript. Se encuentra<strong>\u00a0pr\u00e1cticamente disponible en todos los lenguajes de programaci\u00f3n existentes de forma nativa<\/strong>.<\/p>\n<p style=\"text-align: justify;\">JSON se emplea habitualmente en entornos donde:<\/p>\n<p style=\"text-align: justify;\">&#8211; El <strong>tama\u00f1o del flujo de datos entre cliente y servidor es de vital importancia<\/strong> (de aqu\u00ed su uso por Yahoo, Google, etc, que atienden a millones de usuarios)<\/p>\n<p style=\"text-align: justify;\">&#8211; Cuando la fuente de datos es expl\u00edcitamente de <strong>fiar<\/strong>.<\/p>\n<p style=\"text-align: justify;\">&#8211; Donde <strong>no es importante el no disponer de procesamiento<\/strong> similar a XSLT <strong>para manipular los datos en el cliente<\/strong>.<\/p>\n<p>Se podr\u00e1n crear objetos y usarlo en operaciones <a href=\"http:\/\/es.wikipedia.org\/wiki\/CRUD\" target=\"_blank\"><strong>CRUD<\/strong><\/a>. Crear, Obtener, Actualizar, Borrar.<\/p>\n<p><strong>CRUD<\/strong>, se emplea para referirnos en las funciones b\u00e1sicas en las bases de datos, o capa de persistencia en el software. En computaci\u00f3n <b>CRUD<\/b> es el acr\u00f3nimo de Crear, Obtener, Actualizar y Borrar (del original en ingl\u00e9s: <b>C<\/b>reate, <b>R<\/b>ead, <b>U<\/b>pdate and <b>D<\/b>elete). Se usa para referirse a las funciones b\u00e1sicas en bases de datos.<\/p>\n<p><strong>JSON<\/strong> permite manejar datos de forma minimalista, como si fuesen datos (no relacionales). JSON ha servido de inspiraci\u00f3n para las bases de datos no relacionales como MongoDB.<\/p>\n<p>Para usar JSON necesitar\u00e1s algunos conocimientos del desarrollo en l\u00ednea u on-line. \u00a0Cuando trabajemos con JSON podremos e<strong>mplear un servidor para poder alojar nuestros archivos de prueba<\/strong>. Podremos trabajar mediante FTP o ejecutar un servidor en localhost.Para ello podemos instalar\u00a0<strong>MAMP o WAMP<\/strong> para realizar pruebas, por ejemplo, aunque existan muchos otros.<\/p>\n<p><strong>Por lo tanto, JSON nace como una necesidad de crear un est\u00e1ndar para el intercambio de datos entre diversos lenguajes de programaci\u00f3n, que no ofrecen comunicaci\u00f3n entre ellos.<\/strong><\/p>\n<p><!--more--><\/p>\n<p>Est\u00e1 <strong>basado en un subconjunto de la sintaxis de JavaScript<\/strong>.<br \/>\nLa forma habitual el trabajar con datos almacenados en los servidores y acceder mediante enlaces.<\/p>\n<p>JSON no ha sido el \u00fanico mecanismo, existen otros como <strong>YAML, SO XML, OGDL, S Expresion, Plist<\/strong>,etc. Pero podr\u00edamos decir que junto con XML, los 2 m\u00e1s extendidos en la actualidad.<\/p>\n<p style=\"text-align: justify;\"><strong>Los archivos de JSON son m\u00e1s peque\u00f1os<\/strong>. Lo que programamos en 1 l\u00ednea en JSON, en XML necesitaremos m\u00e1s TAGS o etiquetas. JSON es m\u00e1s f\u00e1cil de leer, <strong>y es m\u00e1s compacto<\/strong>. Con un creciente protagonismo, dentro de todos los lenguajes.<\/p>\n<p style=\"text-align: justify;\">Emplea <strong>un formato de texto independiente del lenguaje<\/strong>, facilita la estructura de c\u00f3digo para los desarrolladores.\u00a0Frameworks, librer\u00edas, lenguajes, emplean JSON, sobre todo en su backend, en diversos sistemas operativos, y herramientas que empleamos en la actualidad.<\/p>\n<p><strong>Con JSON podemos emplear 2 tipos de estructuras.<\/strong><\/p>\n<p>Colecci\u00f3n de <strong>pares<\/strong> nombre\/valor.<br \/>\n<strong>Lista ordenada de valores<\/strong>.<\/p>\n<p>El formato de JSON se parece mucho a los objetos de Javascript. Las claves se escriben entre comillas dobles.<br \/>\n<strong>Existe una clave y un valor.<\/strong><\/p>\n<p><strong>{\u201cMiNombre\u201d:\u201dOscar\u201d}\u00a0<\/strong> \/\/ Observa la notaci\u00f3n <strong>Camel o Camello<\/strong><\/p>\n<p>Pueden existir <strong>6 tipos de datos:<\/strong><\/p>\n<p>Cadenas, objetos, n\u00fameros, matrices, booleanos, null.<\/p>\n<p>Los objetos JSON son m\u00e1s estrictos y no permiten omisiones como en Javascript.<\/p>\n<p><strong>Sobre el Parsing<\/strong><\/p>\n<p>Para hacer un parsing en JSON o analizar la sintaxis, es decir, <strong>analizar el contenido y ubicarlo en las estructuras para ser procesado<\/strong>, identificando los s\u00edmbolos, la funci\u00f3n JSON.parse() es <strong>muy segura para realizar parseos<\/strong> pero no tan compatible con browser antiguos.<\/p>\n<p>La funci\u00f3n eval es m\u00e1s insegura para parsear pero m\u00e1s extendida.<\/p>\n<p style=\"text-align: justify;\">En la pr\u00e1ctica, las consideraciones de seguridad por lo general recomiendan no usar <strong><i>eval<\/i> <\/strong>sobre datos crudos y deber\u00eda usarse un analizador JavaScript distinto para garantizar la seguridad. El analizador proporcionado por JSON.org usa<\/p>\n<div class=\"codecolorer-container text mac-classic\" style=\"overflow:auto;white-space:nowrap;width:635px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/><\/div><\/td><td><div class=\"text codecolorer\">eval()<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>en su funci\u00f3n de an\u00e1lisis, protegi\u00e9ndola con una expresi\u00f3n regular de forma que la funci\u00f3n s\u00f3lo ve expresiones seguras.<\/p>\n<p><a href=\"http:\/\/www.caniuse.com\/json\" target=\"_blank\">www.caniuse.com\/json<\/a> -&gt; En esta web se puede ver una tabla de compatibilidades de los navegadores. Tambi\u00e9n se pueden ver por funci\u00f3n (API)<\/p>\n<p>La funci\u00f3n<strong> JSON.stringify()<\/strong>, convierte un objeto en una cadena, realiza la funci\u00f3n inversa, aunque con problemas tambi\u00e9n de compatibilidad. Aunque para este tipo de problemas disponemos de bibliotecas como Jquery, para evitar los problemas de compatibilidad.<\/p>\n<p><strong>Estructuras de datos en JSON<\/strong><\/p>\n<p><em>Ejemplo de un script que maneja objetos JSON con DOM Javascript<\/em><\/p>\n<pre class=\"lang:js decode:true\">&lt;script type=\u201dtext\/javascript\u201d&gt;\r\nvar mivalor;\r\nvalor= {\u201cnombre\u201d:\u201dOscar,\u201d, \u201cciudad\u201d:\u201dPalencia\u201d};\r\ndocument.getElementById(\u201ciddelcontenedor\u201d).innerHTML= valor.nombre;\r\n&lt;\/script&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Ejemplo de un Array de objetos<\/strong><\/p>\n<pre class=\"lang:js decode:true\">&lt;script type=\u201dtext\/javascript\u201d&gt;\r\nvar misobjetos = [{\u201cnombre\u201d:\u201doscar\u201d, \u201capellido:\u201d:\u201dy\u201d}, {\u201cnombre\u201d:\u201dpedro\u201d, \u201capellido:\u201dx\u201d}];\r\ndocument.getElementById(\u201ciddelcontenedor\u201d).innerHTML= valor. misobjetos [0].nombre;\r\n\r\n\/\/ Para obtener el primer elemento;\r\n&lt;\/script&gt;<\/pre>\n<p>Es necesario destacar que el valor, cuando es un n\u00famero, booleano o es vac\u00edo no requiere comillas.<\/p>\n<p><strong>\u00a0Ejemplo de anidamiento<\/strong><\/p>\n<pre class=\"lang:js decode:true\">&lt;script type=\u201dtext\/javascript\u201d&gt;\r\nvar variedad = {\r\n\r\n\u201cNombre\u201d: \u201dOscar\u201d,\r\n\u201cedad\u201d:37,\r\n\u201ccasado\u201d:true,\r\n\u201clenguajes\u201d:[12,34,12,14],\r\ncursos: { \"C#\u201d:\u201dLenguaje de programaci\u00f3n\u201d, \u201cJava\u201d:\u201dLenguaje programaci\u00f3n\u201d},\r\n\u201cblog\u201d:\u201dwww.palentino.es\r\n\r\n};\r\n\r\n&lt;\/script&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\">Accesos<\/span><\/p>\n<p><span style=\"color: #808080;\">variedad.nombre;<\/span><br \/>\n<span style=\"color: #808080;\"> variedad.edad;<br \/>\n<\/span>variedad.cursos.java;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><strong>M\u00e9todos nativos desde otros lenguajes de programacion<\/strong><\/p>\n<p style=\"text-align: justify;\">No solamente se puede usar JSON con Javascript, se puede emplear en diferentes lenguajes. Los lenguajes orientados a servicios para realizar transferencias de datos son los que m\u00e1s han cuidado el uso de JSON.<br \/>\nEs por ello, que podemos trabajar con otros lenguajes de forma nativa.<\/p>\n<p>S\u00edrvase como ejemplo el lenguaje <strong>m\u00e1s extendido a nivel mundial PHP.<\/strong><br \/>\nPara realizar operaciones CRUD, a partir de la <strong>versi\u00f3n 5.2.0<\/strong> ya posee funciones nativas para el trabajo con JSON.<\/p>\n<p>Se proporciona a los programadores funciones en el lenguaje.\u00a0Existen dos funciones en <strong>PHP<\/strong>.<br \/>\n<span style=\"color: #000080;\"><strong>json_decode()<\/strong> -&gt; convierte de JSON a un Array en PHP<\/span><br \/>\n<span style=\"color: #000080;\"> <strong>json_encode()<\/strong> -&gt; convierte un array de PHP a JSON<\/span><\/p>\n<p>Desde <strong>Python<\/strong>, mediante el import json<br \/>\n<span style=\"color: #000080;\">json.dumps(misdatos);<\/span><br \/>\n<span style=\"color: #000080;\"> json.loads(misdatos);<\/span><\/p>\n<p>Desde plataformas m\u00f3viles como <strong>Android<\/strong>, mediante su importaci\u00f3n<br \/>\n<span style=\"color: #000080;\">JSONObject string= new JSONObject(); \/\/ Para crear el objeto<\/span><br \/>\n<span style=\"color: #000080;\"> String stringJSON)=string.toString(); \/\/ Convertir JSON a String<\/span><\/p>\n<p>Desde <strong>IOS<\/strong><br \/>\n<span style=\"color: #000080;\">NSData dataWithContentsOfURL:url]; \/\/ Lee los datos desde una URL<\/span><br \/>\n<span style=\"color: #000080;\"> [NSJSONSerializaction JSONObjectWithData:jsonData];<\/span><\/p>\n<p>Desde <strong>JQuery<\/strong> (librer\u00eda javascript para simplificar el acceso a los elementos)<\/p>\n<p><span style=\"color: #000080;\">$.getJSON(\u201cpagina.php\u201d, function(data))\u00a0 \/\/ Para realizar una lectura<\/span><\/p>\n<p>Podemos mediante GET traer datos:<br \/>\n<span style=\"color: #000080;\">$.ajax({<\/span><br \/>\n<span style=\"color: #000080;\"> \u201curl\u201d: index.php\u201d,<\/span><br \/>\n<span style=\"color: #000080;\"> \u201ctype\u201d: \u201cGET\u201d,<\/span><br \/>\n<span style=\"color: #000080;\"> \u201cdata\u201d:{},<\/span><br \/>\n<span style=\"color: #000080;\"> \u201cdatatype\u201d:\u201dJSON\u201d}).done(function(data){console.log(data);<\/span><br \/>\n<span style=\"color: #000080;\"> });<\/span><\/p>\n<p>Realizar un PUSH o enviar datos mediante POST con JQUERY<\/p>\n<p><span style=\"color: #000080;\">$.post(\u201carchivo-con-datos.php\u201d, $(this).serialize(), function(data))};<\/span><\/p>\n<p>Las aplicaciones que necesitan datos pueden usar JSON de forma as\u00edncrona mediante un request. Mediante la consulta de un servicio. Ejemplo como hace Spotify.<\/p>\n<p style=\"text-align: justify;\">Otro ejemplo ser\u00eda un archivo con extensi\u00f3n .json. Este archivo creado con un lenguaje determinado contiene los datos con el formato JSON. Por ejemplo leer un SRC externo\u00a0de un archivo externo JSON, y procesarle con Javascript. La p\u00e1gina web estar\u00eda alojada en un sitio diferente al archivo JSON, para un <strong>trabajo distribuido<\/strong>. Al ser JSON en vez de XML, los datos son m\u00e1s sencillos y compactos (mejor tama\u00f1o).<\/p>\n<hr \/>\n<p><strong>Referencias y enlaces interesantes:<\/strong><\/p>\n<ul>\n<li>P\u00e1gina oficial de JSON : <a href=\"http:\/\/www.json.org\" target=\"_blank\">www.json.org<\/a><\/li>\n<li>P\u00e1gina online muy buena para editar JSON con visores , conversores, etc:<br \/>\n<a href=\"http:\/\/jsoneditoronline.org\" target=\"_blank\">jsoneditoronline.org<\/a><\/li>\n<li>Validador de JSON: <a href=\"http:\/\/jsonlint.com\" target=\"_blank\">jsonlint.com<\/a><\/li>\n<li>Un parser online para generar opciones de visualizaci\u00f3n: <a href=\"http:\/\/json.parser.online.fr\" target=\"_blank\">json.parser.online.fr<\/a><\/li>\n<li>Otra opci\u00f3n, si pegamos JSON para convertir en XML e viceversa. Ver tama\u00f1os, etc<br \/>\n<a href=\"http:\/\/www.utilities-online.info\/xmltojson\" target=\"_blank\">www.utilities-online.info\/xmltojson<\/a><\/li>\n<li>Referencia <a href=\"http:\/\/es.wikipedia.org\/wiki\/JSON\" target=\"_blank\">Wikipedia<\/a><\/li>\n<\/ul>\n<p><strong>Curiosidades y\/o contradicciones<\/strong>:<\/p>\n<p>Si bien es cierto que un fichero JSON es m\u00e1s peque\u00f1o que un XML, analicemos esto:<\/p>\n<p>A continuaci\u00f3n se muestra un ejemplo simple de definici\u00f3n de barra de men\u00fas usando JSON y XML.<\/p>\n<p>JSON:<\/p>\n<pre class=\"lang:default decode:true\"> {\"menu\": {\r\n   \"id\": \"fichero\",\r\n   \"value\": \"Fichero\",\r\n   \"popup\": {\r\n     \"menuitem\": [\r\n       {\"valor\": \"Nuevo\", \"onclick\": \"CreateNewDoc()\"},\r\n       {\"valor\": \"Abrir\", \"onclick\": \"OpenDoc()\"},\r\n       {\"valor\": \"Cerrar\", \"onclick\": \"CloseDoc()\"}\r\n     ]\r\n   }\r\n }\r\n}<\/pre>\n<p>XML:<\/p>\n<pre class=\"lang:default decode:true\">&lt;menu id=\"fichero\" value=\"Fichero\"&gt;\r\n    &lt;popup&gt;\r\n      &lt;menuitem value=\"Nuevo\" onclick=\"CreateNewDoc()\" \/&gt;\r\n      &lt;menuitem value=\"Abrir\" onclick=\"OpenDoc()\" \/&gt;\r\n      &lt;menuitem value=\"Cerrar\" onclick=\"CloseDoc()\" \/&gt;\r\n    &lt;\/popup&gt;\r\n  &lt;\/menu&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">Si bien los defensores de JSON a menudo recalcan que \u00e9ste es m\u00e1s abreviado que XML, obs\u00e9rvese que los dos ejemplos tienen unos 190 caracteres cuando se eliminan los espacios en blanco. Adem\u00e1s, el uso de compresi\u00f3n GZIP para enviar los datos al navegador puede reducir la diferencia de tama\u00f1os entre ambos formatos. De hecho, cuando se usa GZIP sobre los ejemplos anteriores el ejemplo en XML es m\u00e1s peque\u00f1o por 6 bytes.<\/p>\n<p style=\"text-align: justify;\">Si bien esto no es concluyente, muestra que es necesario experimentar con el conjunto de datos a tratar para determinar qu\u00e9 formato ser\u00e1 m\u00e1s eficiente en t\u00e9rminos de tama\u00f1o. JSON no es siempre m\u00e1s peque\u00f1o que XML.<\/p>\n<p style=\"text-align: justify;\">El beneficio de JSON, entonces, <strong>en determinadas ocasiones a\u00f1adir\u00eda<\/strong>, \u00a0no es que sea m\u00e1s peque\u00f1o a la hora de transmitir, sino que representa mejor la estructura de los datos y requiere menos codificaci\u00f3n y procesamiento.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JSON es un subconjunto de la notaci\u00f3n literal de objetos de JavaScript que no requiere el uso de XML. Pronunciado \u201cIeison\u201d, JSON o notaci\u00f3n JSON, cuyo significado\u00a0en ingl\u00e9s es\u00a0(JavaScript Object Notation). Todas las grandes empresas lo emplean en sus comunicaciones. Permite ser integrado con diferentes lenguajes de programaci\u00f3n y plataformas. Durante mucho tiempo XML se convirti\u00f3 en el est\u00e1ndar de intercambio de datos. El problema era la gran \u00a0cantidad de datos que se emplean en los intercambios y flujos de peticiones de informaci\u00f3n entre diversos servicios. Con el fin de agilizar la transmisi\u00f3n de datos, el flujo, se emplearon nuevas formas de compresi\u00f3n y formatos. JSON es m\u00e1s &#8220;ligero&#8221; (v\u00e9ase\u00a0referencia\u00a0inferior), y peque\u00f1o a la hora de manejar datos, por eso es una alternativa a XML, es muy f\u00e1cil leer la informaci\u00f3n con \u00e9l. JSON es un formato de texto que hace f\u00e1cil la compartici\u00f3n de datos entre dispositivos cliente y servidor. Se basa en el funcionamiento de los objetos de JavaScript. Se encuentra\u00a0pr\u00e1cticamente disponible en todos los lenguajes de programaci\u00f3n existentes de forma nativa. JSON se emplea habitualmente en entornos donde: &#8211; El tama\u00f1o del flujo de datos entre cliente y servidor es de vital importancia (de aqu\u00ed su uso por Yahoo, Google, etc, que atienden a millones de usuarios) &#8211; Cuando la fuente de datos es expl\u00edcitamente de fiar. &#8211; Donde no es importante el no disponer de procesamiento similar a XSLT para manipular los datos en el cliente. Se podr\u00e1n crear objetos y usarlo en operaciones CRUD. Crear, Obtener, Actualizar, Borrar. CRUD, se emplea para referirnos en las funciones b\u00e1sicas en las bases de datos, o capa de persistencia en el software. En computaci\u00f3n CRUD es el acr\u00f3nimo de Crear, Obtener, Actualizar y Borrar (del original en ingl\u00e9s: Create, Read, Update and Delete). Se usa para referirse a<\/p>\n<p><a href=\"https:\/\/www.palentino.es\/blog\/json-el-sistema-mas-popular-de-intercambio-de-datos\/\">(M\u00e1s)\u2026<\/a><\/p>\n","protected":false},"author":1,"featured_media":7222,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[93,5],"tags":[584,76],"class_list":["post-7220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jquery","category-programacion","tag-json","tag-xml"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=7220"}],"version-history":[{"count":19,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7220\/revisions"}],"predecessor-version":[{"id":7240,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/7220\/revisions\/7240"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/7222"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=7220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=7220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=7220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}