Ir al contenido principal
CuteJSON
↑↓ Navegar Enter Seleccionar Esc Cerrar

Como convertir JSON a CSV sin perder datos

Publicado 2 min de lectura Por Akash Kinkar Pandey

CSV no tiene una especificacion que todos sigan, que es exactamente por lo que tantos convertidores discreparon entre si en casos extremos. Esta herramienta sigue RFC 4180 y declara el unico lugar donde se desvia de ella, en vez de elegir reglas en silencio.

Usando el convertidor JSON a CSV

Elige una direccion, establece el delimitador (coma, punto y coma o tabulador) y si la primera fila contiene nombres de columnas, luego presiona Convertir. Ir a CSV necesita un array de objetos, la unica forma de JSON que es genuinamente una tabla; un solo objeto tambien se acepta, tomado como una tabla de una fila.

Convirtiendo

[{"name":"Doe, Jane","age":30,"note":null},{"name":"Smith","age":25,"note":"line1\nline2"}]

produce:

name,age,note
"Doe, Jane",30,
Smith,25,"line1
line2"

Un campo se entrecomilla solo cuando realmente lo necesita: la coma dentro de “Doe, Jane” fuerza comillas, el salto de linea incrustado en la segunda nota fuerza comillas, y un valor simple como Smith se deja sin comillas.

Que pasa con los valores anidados y null

Un objeto o array anidado no tiene forma CSV en absoluto, una cuadricula de valores simples, por lo que se escribe en la celda como su propio texto JSON en vez de ser descartado o extendido en columnas inventadas. null se convierte en un campo vacio, lo que si significa que un null y una cadena vacia son indistinguibles una vez que llegan a CSV. Ambas elecciones estan declaradas en la pagina en vez de descubiertas despues.

Por que cada campo regresa como cadena

Convirtiendo de CSV, cada valor se mantiene como cadena, deliberadamente. Un archivo CSV no registra tipos en absoluto, asi que adivinarlos es como un codigo postal de 01234 pierde su cero inicial y se convierte en 1234, y como un identificador largo se redondea en el momento en que algo intenta leerlo como numero. Convertir las columnas que conoces en numeros despues es una linea de codigo; un identificador silenciosamente redondeado no es recuperable. Leyendo de vuelta el ejemplo anterior, age regresa como la cadena "30", no el numero 30, y el campo vacio note regresa como "", no null.

Intercambiar direccion

El intercambio mueve la salida actual a la entrada y cambia la direccion, asi puedes verificar inmediatamente que un documento hace el viaje redondo a traves de CSV y de vuelta como esperas, sin reescribir nada. Prueba con datos que tengan una coma dentro de un campo o un cero inicial en un ID, ya que esos son exactamente los casos que la mayoria de los convertidores hacen mal.

Volver a todas las entradas