Generador cron d’AWS
Generador cron
Comptador de text
JSON a CSV
CSV a JSON
Conversor de timestamp Unix
Generador d’UUID v4 i v7
JSON a TypeScript
Markdown a PDF
Base 64
Imatges
JSON
Codi QR
Contrasenyes
Unitats
Hash
Colors
Eines PDF
Editor de PDF
Codificador d'URL
Conversor de majúscules i minúscules
Lorem Ipsum
Comprovador de regex
Descodificador JWT
Diferència de text
Optimitzador SVG
Visualitzador EXIF
Extractor de colors
Generador de favicons
Convertidor universal
Convertidor d'hores
Divisor de PDF
Imatges a PDF
PDF a Imatge
Eliminar Fons
Tornar al BlogUTILX / Notes i guies

De CSV a JSON: conserva identificadors, cometes i camps buits

Files CSV convertides en objectes JSON

Passar de CSV a JSON sembla senzill fins que un identificador perd els zeros inicials, un salt de línia entre cometes es converteix en un registre addicional o un enter llarg s’arrodoneix. Els camps CSV són text tret que una aplicació els assigni un altre significat. Per importar-los amb criteri, primer cal interpretar l’estructura i després decidir explícitament si s’han de convertir els tipus.

Aquesta guia prova el convertidor de CSV a JSON amb dos registres fixos. L’exemple inclou una coma dins d’un camp, text amb diverses línies, una cel·la buida, identificadors amb zeros, un enter fora del rang segur, booleans i un decimal. Permet comparar diferents importadors sense utilitzar dades personals.

Separa l’estructura dels tipus

Interpretar CSV significa trobar els límits dels registres i dels camps, i reconèixer les cometes que protegeixen delimitadors o salts de línia. Inferir tipus és una decisió posterior: determinar si el text d’una cel·la ha de convertir-se en un nombre o un booleà JSON. Si es fan totes dues coses de manera invisible, costa saber on s’ha produït un error.

Per defecte, l’eina conserva cadenes. 0012 continua sent "0012", true continua sent "true" i un camp buit es representa com "". La inferència opcional converteix booleans exactes en minúscules i formes numèriques admeses dins del rang segur. Conserva dates, identificadors amb zeros inicials i enters insegurs com a text. Aquest comportament prudent forma part del contracte.

Un CSV que fa visibles els errors habituals

Prepara un fitxer UTF-8 amb aquest contingut exacte:

id,name,note,amount,enabled
0012,"Doe, Ana","Line one
Line two",9007199254740993,true
0013,Bela,,12.5,false

Amb coma com a delimitador i sense inferència, totes les propietats són cadenes. La primera nota inclou un salt de línia real, però continua sent un sol camp perquè les cometes segueixen obertes. La segona nota és una cadena buida. Tant els imports com els valors d’enabled es mantenen entre cometes en el resultat JSON.

Si actives la inferència, els dos identificadors continuen sent cadenes perquè tenen zeros inicials. 9007199254740993 també continua sent text: convertir-lo a un nombre JavaScript podria perdre precisió. 12.5 passa a ser un nombre, i true i false esdevenen booleans. El camp buit no es transforma en null. No hi ha cap conversió automàtica de dates.

Importa en una seqüència comprovable

Obre l’eina, tria coma i enganxa l’exemple. Si el fitxer incorpora una marca BOM UTF-8, l’importador l’accepta sense afegir-la al primer nom de columna. Fes una primera conversió sense inferència i confirma que hi ha dos objectes amb les cinc propietats de la capçalera. Copia o descarrega el resultat per revisar-lo fora de la vista prèvia.

Activa després la inferència i torna a convertir. Compara només els canvis esperats: els booleans i el segon import canvien de tipus. Els identificadors i el primer import han de seguir entre cometes. Aquesta comparació ajuda a decidir si el destinatari necessita els valors interpretats o el text original de cada camp.

La previsualització mostra com a màxim 100 files i 50 columnes; el JSON descarregat inclou tot el resultat acceptat, fins al límit de 10.000 registres. Comprova la longitud de la matriu descarregada quan el fitxer sigui més gran. Si després necessites tornar a exportar, consulta la guia de JSON a CSV i identifica quines transformacions són reversibles.

Com s’interpreten les cometes i les capçaleres

RFC 4180 documenta la convenció habitual: els registres tenen camps, els camps es poden protegir amb cometes i les cometes internes es dupliquen. Un camp protegit pot contenir comes i salts de línia. Els fitxers reals utilitzen variants; cal seleccionar el delimitador que correspon a l’origen. Un fitxer tabulat llegit amb coma podria semblar una sola columna enorme.

El primer registre proporciona els noms de propietat. Han de ser únics i no poden quedar buits. Dues columnes amb el mateix nom no es poden representar sense ambigüitat dins d’un objecte. Cada registre posterior ha de tenir exactament el mateix nombre de camps. L’eina rebutja les diferències en lloc de desplaçar valors cap a propietats equivocades.

El número de fila d’un error correspon al registre CSV lògic, comptant la capçalera com a primer registre. No equival necessàriament a una línia física: una nota entre cometes pot ocupar diverses línies. Un final de línia terminal no afegeix un registre buit extra; una línia buida interior sí que participa en les comprovacions de l’amplada.

RFC 8259 adverteix de les limitacions d’interoperabilitat dels nombres. JavaScript ofereix Number.isSafeInteger per comprovar enters representables amb precisió segura. Mantenir l’enter llarg com a cadena conserva els seus dígits; el sistema receptor pot decidir després si necessita BigInt, un decimal o un tipus propi de la base de dades.

Corregeix l’origen sense ocultar problemes

Una capçalera duplicada o buida s’ha de corregir amb noms estables i significatius. Afegir números arbitraris pot trencar un consumidor que depèn dels noms. Un nombre incorrecte de columnes sol indicar un delimitador sense cometes, una cometa sense tancar o un salt de línia que havia de quedar dins d’un camp. Examina també el camp anterior al registre assenyalat.

Si la sintaxi és invàlida, no esborris puntuació a l’atzar. Duplica les cometes internes i protegeix amb cometes els camps que contenen delimitadors o salts de línia. Selecciona punt i coma o tabulador si aquest és el format real abans de modificar les dades.

L’entrada està limitada a 2 MiB UTF-8 i 10.000 registres de dades. A més, una estimació conservadora limita la sortida JSON a 16 MiB. Repetir capçaleres molt llargues en molts objectes pot expandir enormement un CSV petit. Si se supera el límit, no es retorna una matriu parcial. Divideix el fitxer fora dels camps entre cometes, repeteix la mateixa capçalera i reconcilia els recomptes.

Conserva els identificadors i el significat

Decideix els tipus a partir del contracte de dades. Codis postals, comptes, factures i telèfons poden contenir només dígits i continuar sent identificadors. Els zeros inicials són un indici, però 1234 també pot necessitar un tipus cadena. Si importa conservar exactament el text, deixa la inferència desactivada i valida després amb l’esquema del destinatari.

Un camp buit no demostra absència de valor. L’eina emet "" perquè només ha observat text buit. Si el sistema origen defineix NULL com a marcador especial, aplica aquesta convenció en un pas documentat. Igualment, 2026-09-17 continua sent text: triar una zona horària o un tipus de calendari exigeix informació addicional.

La conversió es fa localment al navegador, però la descàrrega crea una nova còpia. Revisa on es desa, qui hi té accés i quan s’elimina. Fes proves amb dades sintètiques. La guia d’errors JSON ajuda a separar problemes estructurals dels errors de significat en el resultat.

L’abast de la inferència automàtica

L’importador interpreta delimitadors i cometes; no descobreix esquemes, unitats, decimals regionals, relacions entre fitxers ni convencions de nul·litat. La inferència és limitada expressament. No converteix dates en objectes Date ni enters insegurs en nombres arrodonits. Tampoc dedueix que un identificador sense zeros inicials hagi de continuar sent text.

Un JSON vàlid encara pot ser inadequat per al sistema receptor. No es validen propietats obligatòries, intervals de valors, unicitat ni regles entre camps. Comprova el fitxer complet amb un validador d’esquema o una taula d’importació provisional abans d’aplicar-lo a dades de producció. La vista prèvia no substitueix aquesta verificació.

Comprovacions finals de la importació

Confirma UTF-8, delimitador, capçaleres úniques i recompte de registres lògics. Converteix primer sense inferència. Revisa camps buits, zeros, comes protegides, cometes duplicades i text multilínia. Activa la inferència només quan necessitis booleans i nombres segurs, i conserva una còpia de l’entrada original per comparar-la.

Per a l’exemple, exigeix dos objectes; conserva 0012, 0013 i 9007199254740993 com a cadenes; mantén el salt de línia de la primera nota i el buit de la segona. Només 12.5, true i false han de canviar de tipus. Descarrega tot el JSON, comprova’n la longitud i valida’l segons les regles del receptor.

Fonts: RFC 4180: format comú CSV, RFC 8259: format JSON i ECMAScript: Number.isSafeInteger.