{"id":363,"date":"2023-09-04T08:31:36","date_gmt":"2023-09-04T06:31:36","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/?page_id=363"},"modified":"2025-03-09T18:37:22","modified_gmt":"2025-03-09T16:37:22","slug":"2-2-ficheros-json","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/2-2-ficheros-json\/","title":{"rendered":"2.2. Ficheros JSON"},"content":{"rendered":"<p>JavaScript Object Notation (JSON) es un formato de datos basado en texto est\u00e1ndar para representar datos estructurados que sigue la sintaxis de objeto de JavaScript. Aunque es muy parecido a la sintaxis de objeto literal de JavaScript, puede ser utilizado independientemente de JavaScript.<\/p>\n<p>Los ficheros para almacenar datos con formato JSON cada vez son m\u00e1s usados en la inform\u00e1tica y tambi\u00e9n en el \u00e1mbito de la bioinform\u00e1tica.<\/p>\n<figure id=\"attachment_229\" aria-describedby=\"caption-attachment-229\" style=\"width: 640px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-229 size-large\" src=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_85-1024x579.png\" alt=\"\" width=\"640\" height=\"362\" srcset=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_85-1024x579.png 1024w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_85-300x170.png 300w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_85-768x435.png 768w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_85.png 1329w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-229\" class=\"wp-caption-text\">Figura 72. Ejemplo de un documento con formato JSON. <br \/>Fuente: elaboraci\u00f3n propia.<\/figcaption><\/figure>\n<p>En este formato la forma de guardar los datos es parecida al modelo <strong>clave\/valor<\/strong>, donde la clave ser\u00eda el nombre del campo o atributo y a continuaci\u00f3n tenemos el valor.<\/p>\n<p>Los ficheros JSON en realidad almacenan una <strong>colecci\u00f3n<\/strong> de documentos con este formato y cada documento es la representaci\u00f3n o la instancia de una entidad.<\/p>\n<p>Si hacemos el s\u00edmil con la informaci\u00f3n que almacenamos en una tabla relacional, cada fila de la tabla corresponde a un documento, y todas las filas de la tabla ser\u00edan una colecci\u00f3n de documentos.<\/p>\n<p>JSON requiere utilizar comillas dobles para las cadenas y los nombres de propiedades. Las comillas simples no son v\u00e1lidas.<\/p>\n<p>Una coma o dos puntos mal ubicados pueden producir que un archivo JSON no funcione. Se debe ser cuidadoso para validar cualquier dato que se quiera usar. Es posible validar JSON empleando una aplicaci\u00f3n como JSONLint.<\/p>\n<p>Veamos c\u00f3mo se almacena la informaci\u00f3n que tenemos guardada en la tabla <em>genomas<\/em> en un fichero JSON.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{especie:\"D. Melanogaster\", nombre:\"Mosca de la fruta\",descripcion:\"Tambien denominada del \r\nvinagre\"} {especie:\"H. Sapiens\", nombre:\"Humano\",descripcion:\"Nuestra propia especie\"}\r\n{especie:\"M. Musculus\", nombre:\"Raton\",descripcion:\"Otro organismo modelo\"}<\/pre>\n<p>En este caso tenemos 3 documentos que corresponden a las 3 filas de la tabla <em>genomas<\/em>. Cada documento empieza con el s\u00edmbolo {<strong>,<\/strong> y finaliza con el s\u00edmbolo }<\/p>\n<p>En cada documento se repite el nombre del campo y a continuaci\u00f3n su valor, separados por el s\u00edmbolo :<\/p>\n<p>Cada combinaci\u00f3n<strong> campo\/valor<\/strong> se separa por comas.<\/p>\n<p>No se describen los tipos de datos, si el valor es una cadena de caracteres se usan las comillas dobles <code>\" \"<\/code>, si el valor es num\u00e9rico no es necesario escribirlo entre comillas.<\/p>\n<p>Otra forma muy habitual de guardar la colecci\u00f3n de documentos es dentro de un<strong> array<\/strong> con los s\u00edmbolos <strong>[ ]<\/strong> y separando los diferentes documentos por comas. Se considera toda la colecci\u00f3n de documentos como un solo objeto, pues est\u00e1n todos en un <strong>array<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">[{especie:\"D. Melanogaster\", nombre:\"Mosca de la \r\nfruta\",descripcion:\"Tambien denominada del vinagre\" }, {especie:\"H. \r\nSapiens\", nombre:\"Humano\",descripcion:\"Nuestra propia especie\" }, \r\n{especie:\"M. Musculus\", nombre:\"Raton\",descripcion:\"Otro organismo modelo\" }]<\/pre>\n<p>Un campo puede guardar un <strong>array <\/strong>de valores:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{dias:[\"lunes\", \"jueves\", \"s\u00e1bado\"]}<\/pre>\n<p>Un campo tambi\u00e9n puede guardar otro <strong>documento JSON. <\/strong>Tambi\u00e9n se llama <em>documento incrustado<\/em>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{direccion: {calle: \"Valencia\", n\u00famero: 334, codigo: 08012}}<\/pre>\n<p>Un campo puede guardar un <strong>array <\/strong>de<strong> documentos JSON<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{amigos:\r\n\r\n[{nombre: \"Pedro\", edat: 34, telefono: 666737211},\r\n\r\n{nombre: \"Soraya\", edat: 31, telefono: 666737212},\r\n\r\n{nombre: \"Arnau\", edat: 29, telefono: 666737213}\r\n\r\n]}<\/pre>\n<p>A partir de la versi\u00f3n 8 de MySQL es posible trabajar con documentos JSON en las tablas SQL con el tipo de datos JSON.<\/p>\n<p>Podemos almacenar todo un documento JSON en un campo de la tabla y realizar consultas con el comando <code>JSON_EXTRACT<\/code>, actualizaciones con <code>JSON_REPLACE<\/code> y eliminaciones con el comando <code>JSON_REMOVE<\/code>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript Object Notation (JSON) es un formato de datos basado en texto est\u00e1ndar para representar datos estructurados que sigue la sintaxis de objeto de JavaScript. Aunque es muy parecido a la sintaxis de objeto literal de JavaScript, puede ser utilizado independientemente de JavaScript. Los ficheros para almacenar datos con formato JSON cada vez son m\u00e1s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/363"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/comments?post=363"}],"version-history":[{"count":8,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/363\/revisions"}],"predecessor-version":[{"id":1020,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/363\/revisions\/1020"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/media?parent=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}