Convertidor de CSV a JSON

Converteixi CSV a JSON en línia: gratuït, instantani i privat. El fitxer es processa al seu navegador i mai es puja enlloc.

Delimitador CSV
Resultat

Els fitxers convertits i una vista prèvia apareixeran aquí.

Llest. Trieu un fitxer de taula per convertir.

Com funciona la conversió

  • La primera fila es llegeix com a capçalera: les seves cel·les es converteixen en els noms dels camps de JSON, i cada fila següent es converteix en un objecte.
  • Trieu el delimitador que coincideixi amb les vostres dades: coma, punt i coma o tabulador.

El seu fitxer de taula es converteix directament al navegador. No es puja res als servidors de BroBroGo.

Preguntes freqüents

Com puc convertir CSV a JSON?

Arrossegueu el fitxer CSV i feu clic a convertir: el fitxer JSON estarà a punt per descarregar en qüestió de segons, juntament amb una previsualització del resultat. Tot el procés s'executa al vostre dispositiu.

Quina és la mida màxima de fitxer que puc convertir?

Fins a 8 MB, 10.000 files i 200 columnes per fitxer. Per a conjunts de dades més grans, es recomana dividir-los primer en fitxers més petits.

Convertir CSV a JSON: què fa exactament aquesta pàgina

Aquesta eina en línia rep un fitxer CSV (valors separats per comes, per punt i coma o per tabuladors) i el transforma en un fitxer JSON, concretament en un array d’objectes on cada fila del CSV esdevé un objecte i cada columna una clau. L’usuari arrossega el fitxer a l’eina o el selecciona des del seu dispositiu, tria “JSON” com a format de sortida, escull el delimitador correcte si el CSV no utilitza comes, i després pot previsualitzar el resultat i descarregar el JSON acabat. El procés és completament local: no s’envia cap dada a cap servidor.

Tot i que la premissa sona simple, la conversió presenta particularitats tècniques que cal conèixer per evitar sorpreses. La pàgina també accepta fitxers JSON o XLSX com a entrada —en aquests casos, primer els interpreta com a taules—, però l’escenari principal és CSV → JSON.

Per què aquesta conversió no és tan senzilla com sembla

La diferència fonamental entre CSV i JSON és que el primer no té tipus i el segon sí. CSV emmagatzema tot com a text pla; JSON admet nombres, booleans, null i estructures niades. Quan l’eina converteix un CSV a JSON, cada camp del CSV arriba com una cadena de text. Un número com 42, una data com 2023-05-12 o un codi postal com 01234 no es converteixen automàticament a tipus numèric o data en el JSON de sortida. Continuen sent cadenes. Si més tard carregueu aquest JSON en un entorn que fa type casting automàtic (com molts parsers de JavaScript), podríeu perdre els zeros a l’esquerra o canviar la representació de les dates.

Una altra diferència clau: el CSV és estrictament una taula plana. No hi ha manera de representar jerarquies (objectes dins d’objectes) sense regles addicionals. L’eina no aplica cap heurística per niar dades; produeix un array d’objectes plans, on totes les claus són al primer nivell. La direcció inversa, de JSON a CSV, sí que ha d’aplanar estructures niades, cosa que la fa més complexa.

El delimitador també és crític. Mentre que per a fitxers JSON o Excel no cal triar cap separador, per a CSV heu d’indicar si les vostres dades fan servir comes, punt i coma o tabuladors. Triar el delimitador incorrecte és una de les fonts més habituals d’errors de parseig.

Delimitadors i la seva importància

L’eina ofereix tres opcions de delimitador: coma (,), punt i coma (;) i tabulador (\t). Heu de seleccionar el que utilitza el vostre fitxer. Si el delimitador no es correspon amb el real, l’eina no podrà separar correctament les columnes i és possible que mostri l’error "This CSV could not be parsed." o que generi un JSON amb una sola columna (perquè no ha trobat cap separador).

Els fitxers CSV sovint amaguen problemes de format. Les regles de citació (quoting) no sempre se segueixen de manera uniforme. Una coma dins d’un camp citat amb cometes dobles és vàlida (per exemple: "Barcelona, Catalunya", 08001), però si el fitxer no cita correctament aquest camp, la coma es tracta com a delimitador i es parteix la columna de manera incorrecta. Els salts de línia dins d’una cel·la (per exemple, en un camp d’adreça que conté un paràgraf) també són fràgils: molts generadors de CSV els escapen posant tot el camp entre cometes, però no tots ho fan. Si el fitxer no ho respecta, la línia es trenca i es generen files addicionals no desitjades.

L’eina preserva els salts de línia dins de camps citats com a \n en el valor cadena del JSON.

L’absència de tipus en CSV: tot són cadenes

Un error comú entre usuaris nous és esperar que el JSON resultant tingui nombres per a columnes de preus o quantitats, o dates en format ISO. La realitat és que l’eina no interpreta números ni dates. Cada valor del CSV es trasllada al JSON com una cadena de text, literalment el que hi ha entre comes o tabuladors. Per exemple:

Nom Preu Codi
Sabates 49.99 0123

El JSON generat serà:

[
  {
    "Nom": "Sabates",
    "Preu": "49.99",
    "Codi": "0123"
  }
]

Tant "49.99" com "0123" són cadenes. Si necessiteu que Preu sigui un nombre, haureu de convertir-lo manualment després de la descàrrega, per exemple amb parseFloat() en JavaScript. I el codi 0123 conserva el zero a l’esquerra pel fet de ser cadena; si el convertiu a nombre, es perdria (123). Això és justament el que la pàgina vol evitar: els zeros a l’esquerra es preserven perquè cada camp es tracta com a text.

La manca d’inferència de tipus no és un defecte, sinó una decisió de disseny. CSV no conté informació de tipus, i inferir-la automàticament podria provocar efectes secundaris no desitjats (per exemple, convertir un codi postal com 02134 en el nombre 2134).

Casos límit: zeros a l’esquerra, salts de línia, errors de parseig

La pàgina gestiona diversos casos límit amb missatges d’error específics:

  • Fitxer no seleccionat: "Choose one file first."
  • Tipus de fitxer incorrecte (no CSV, JSON ni XLSX): "Choose a CSV, JSON or XLSX file."
  • CSV mal format (errors de citació, nombres de columnes inconsistents): "This CSV could not be parsed."
  • Sense dades (cap fila de dades): "This file has no table rows."
  • Massa files o columnes: "This table has more than ‹max› rows." o "This table has more than ‹max› columns." (el límit exacte no es detalla al full de dades, però existeix).
  • Fitxer massa gran: "This file is too large. Use a file under ‹max›." (tampoc es dona la xifra exacta).
  • Conversió massa lenta (per a fitxers grans o complexes): "This conversion is taking too long. Try a smaller file."

Pel que fa als zeros a l’esquerra, com ja s’ha dit, es conserven intactes al JSON perquè tot és cadena. Això és crític per a codis postals, números de producte, identificadors d’empleat, etc. Si després carregueu aquest JSON en una base de dades o en un programa que converteix automàticament cadenes a nombres, els zeros podrien perdre’s. L’eina no té control sobre el que passa després de la descàrrega; la seva responsabilitat és mantenir la fidelitat textual.

Un altre cas freqüent: les files amb un nombre de columnes diferent del del capçal. Per exemple, si una fila té una coma extra o falta un camp, el CSV es considera mal format i l’eina mostra l’error de parseig. L’eina no intenta “endevinar” columnes; prefereix fallar i informar l’usuari.

Privadesa i processament al navegador

Tota la conversió es realitza al navegador de l’usuari, sense cap pujada a un servidor remot. Això és especialment rellevant per a dades sensibles (llistes de clients, dades financeres, informació mèdica). L’usuari pot estar segur que el fitxer original i el JSON generat no surten mai del seu dispositiu. No hi ha cap crida a API externa ni emmagatzematge al núvol.

Aquesta característica diferencia la pàgina de moltes eines en línia que requereixen pujar el fitxer a un servidor per processar-lo. L’inconvenient és que les limitacions de memòria i rendiment del navegador poden afectar fitxers molt grans, cosa que explica els missatges d’error per límits de mida i de nombre de files/columnes.

Preguntes freqüents

Per què el JSON que descarrega conté tots els valors com a cadenes, fins i tot els números? Perquè CSV no emmagatzema informació de tipus. L’eina tracta cada camp com a text per evitar conversions automàtiques que puguin alterar dades (com ara zeros a l’esquerra). Si necessiteu tipus numèrics, heu de convertir-los manualment després de la descàrrega.

Què passa si el meu CSV conté comes dins de les dades (per exemple, “Barcelona, Catalunya”)? Si el camp està correctament citat amb cometes dobles ("Barcelona, Catalunya"), l’eina el tracta com un sol camp i la coma no es considera delimitador. Si el fitxer no utilitza cometes, el parsejat fallarà i rebreu l’error "This CSV could not be parsed."

Puc convertir un fitxer Excel (XLSX) a JSON amb aquesta eina? Sí, l’eina detecta automàticament si el fitxer és CSV, JSON o XLSX i el processa en conseqüència. Però l’escenari principal és CSV; si pugeu un XLSX, primer l’interpreta com una taula (full de càlcul) i després la converteix a JSON.

Per què el codi postal “00123” apareix com “00123” al JSON, però el meu programa el llegeix com “123”? L’eina genera el valor correctament com a cadena. Si el vostre programa el converteix a nombre en llegir-lo, esteu perdent el zero. Haureu d’assegurar-vos que el carregador JSON que utilitzeu no faci type casting automàtic. Molts llenguatges de programació permeten llegir el valor com a cadena explícitament.

El meu fitxer té moltes files. Quina mida o nombre de files admet l’eina? L’eina mostra missatges d’error específics quan se superen els límits: "This table has more than ‹max› rows.", "This table has more than ‹max› columns." o "This file is too large. Use a file under ‹max›." Els valors exactes no es publiquen, però depenen de la memòria del navegador. Per a fitxers molt grans, la conversió pot trigar massa i rebreu "This conversion is taking too long. Try a smaller file."

Puc convertir un JSON a CSV amb aquesta eina? No directament. La pàgina està dissenyada per a la conversió de CSV a JSON. Si necessiteu JSON → CSV, hi ha una pàgina germana que ho fa, però aquí el flux és l’invers. Recordeu que la conversió de JSON a CSV requereix aplanar estructures niades, cosa que afegeix complexitat.