{"id":580,"date":"2023-10-23T09:49:23","date_gmt":"2023-10-23T07:49:23","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/?page_id=580"},"modified":"2025-06-13T10:49:31","modified_gmt":"2025-06-13T08:49:31","slug":"2-2-ficheros-json","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/2-2-ficheros-json\/","title":{"rendered":"2.2. Fitxers JSON"},"content":{"rendered":"<p>JavaScript Object Notation (JSON) \u00e9s un format de dades basat en text est\u00e0ndard per representar dades estructurades que segueix la sintaxi d\u2019objecte de JavaScript. Tot i que \u00e9s molt semblant a la sintaxi d\u2019objecte literal de JavaScript, pot ser utilitzat independentment de JavaScript.<\/p>\n<p>Els fitxers per emmagatzemar dades amb format JSON cada vegada s\u00f3n m\u00e9s usats en la inform\u00e0tica i tamb\u00e9 en l\u2019\u00e0mbit de la bioinform\u00e0tica.<\/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 6. Exemple d\u2019un document amb format JSON.<br \/>Font: elaboraci\u00f3 pr\u00f2pia.<\/figcaption><\/figure>\n<p>En aquest format la forma de guardar les dades \u00e9s semblant al model <strong>clau\/valor<\/strong>, on la clau seria el nom del camp o atribut i a continuaci\u00f3 tenim el valor.<\/p>\n<p>Els fitxers JSON en realitat emmagatzemen una <strong>col\u00b7lecci\u00f3<\/strong> de documents amb aquest format i cada document \u00e9s la representaci\u00f3 o la inst\u00e0ncia d\u2019una entitat.<\/p>\n<p>Si fem el s\u00edmil amb la informaci\u00f3 que emmagatzemem en una taula relacional, cada fila de la taula correspon a un document, i totes les files de la taula serien una col\u00b7lecci\u00f3 de documents.<\/p>\n<p>JSON requereix usar cometes dobles per a les cadenes i els noms de propietats. Les cometes simples no s\u00f3n v\u00e0lides.<\/p>\n<p>Una coma o dos punts mal ubicats poden produir que un arxiu JSON no funcioni. S\u2019ha de ser cur\u00f3s per validar qualsevol dada que es vulgui utilitzar. \u00c9s possible validar JSON utilitzant una aplicaci\u00f3 com JSONLint.<\/p>\n<p>Vegem com s\u2019emmagatzema la informaci\u00f3 que tenim guardada a la taula <em>genomes<\/em> en un fitxer JSON.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{especie:\"D. Melanogaster\", nom:\"Mosca de la fruita\", descripcio:\"Tamb\u00e9 denominada del \r\nvinagre\"} {especie:\"H. Sapiens\", nom:\"Huma\",descripcio:\"Nostra pr\u00f2pia especie\"}\r\n{especie:\"M. Musculus\", nom:\"Ratol\u00ed\", descripcio:\"Altre organisme model\"}<\/pre>\n<p>En aquest cas tenim 3 documents que corresponen a les 3 files de la taula <em>genomes<\/em>. Cada document comen\u00e7a amb el s\u00edmbol <code>{<\/code><strong>,<\/strong> i finalitza amb el s\u00edmbol<code> }<\/code><\/p>\n<p>En cada document es repeteix el nom del camp i a continuaci\u00f3 el seu valor, separats pel s\u00edmbol :<\/p>\n<p>Cada combinaci\u00f3<strong> camp\/valor<\/strong> se separa per comes.<\/p>\n<p>No es descriuen els tipus de dades, si el valor \u00e9s una cadena de car\u00e0cters s\u2019utilitzen les cometes dobles &#8221; &#8220;, i si el valor \u00e9s num\u00e8ric no cal escriure\u2019l entre cometes.<\/p>\n<p>Una altra forma molt habitual de guardar la col\u00b7lecci\u00f3 de documents \u00e9s dins d\u2019un<strong> array<\/strong> amb els s\u00edmbols <strong>[ ]<\/strong> i separant els diferents documents per comes. Es considera tota la col\u00b7lecci\u00f3 de documents com un sol objecte, ja que estan tots en un <strong>array<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">[{especie:\"D. Melanogaster\", nom:\"Mosca de la \r\nfruita\", descripcio:\"Tamb\u00e9 denominada del vinagre\" }, {especie:\"H. \r\nSapiens\", nom:\"Huma\", descripcio:\"la nostra pr\u00f2pia especie\" }, \r\n{especie:\"M. Musculus\", nombre:\"Ratol\u00ed\", descripcio:\"Altre organisme model\" }]<\/pre>\n<p>Un camp pot guardar un <strong>array <\/strong>de valors:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{dies:[\"dilluns\", \"dijous\", \"dissabte\"]}<\/pre>\n<p>Un camp tamb\u00e9 pot guardar un altre <strong>document JSON. <\/strong>Tamb\u00e9 s\u2019anomena <em>document incrustat<\/em>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{direccio: {carrer: \"Valencia\", n\u00famero: 334, codi: 08012}}<\/pre>\n<p>Un camp pot guardar un <strong>array <\/strong>de<strong> documents JSON<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">{amics:\r\n\r\n[{nom: \"Pedro\", edat: 34, tel\u00e8fon: 666737211},\r\n\r\n{nom: \"Soraya\", edat: 31, tel\u00e8fon: 666737212},\r\n\r\n{nom: \"Arnau\", edat: 29, tel\u00e8fon: 666737213}\r\n\r\n]}<\/pre>\n<p>A partir de la versi\u00f3 8 de MySQL \u00e9s possible treballar amb documents JSON a les taules SQL amb el tipus de dades JSON.<\/p>\n<p>Podem emmagatzemar tot un document JSON en un camp de la taula i realitzar consultes amb l\u2019ordre <code>JSON_EXTRACT<\/code>, actualitzacions amb <code>JSON_REPLACE<\/code> i eliminacions amb l\u2019ordre <code>JSON_REMOVE<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript Object Notation (JSON) \u00e9s un format de dades basat en text est\u00e0ndard per representar dades estructurades que segueix la sintaxi d\u2019objecte de JavaScript. Tot i que \u00e9s molt semblant a la sintaxi d\u2019objecte literal de JavaScript, pot ser utilitzat independentment de JavaScript. Els fitxers per emmagatzemar dades amb format JSON cada vegada s\u00f3n m\u00e9s [&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\/wp-json\/wp\/v2\/pages\/580"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/wp-json\/wp\/v2\/comments?post=580"}],"version-history":[{"count":13,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/wp-json\/wp\/v2\/pages\/580\/revisions"}],"predecessor-version":[{"id":990,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/wp-json\/wp\/v2\/pages\/580\/revisions\/990"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/wp-json\/wp\/v2\/media?parent=580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}