convertir CSV / XLS a JSON? [cerrado]
Pregunta
¿Alguien sabe si hay una aplicación que me permita convertir preferiblemente XLS a JSON?
También me conformaré con un convertidor de CSV ya que eso es lo que probablemente tendré que escribir si no hay nada alrededor.
Solución
Esto funcionó perfectamente para mí y NO requiere la carga de un archivo:
Otros consejos
Puedes probar esta herramienta que hice:
Se convierte a JSON, XML y otros.
También es del lado del cliente, por lo que sus datos nunca salen de su computadora.
Desde Powershell 3.0 (incluido con Windows 8, disponible para Windows 7 y Windows Server 2008 pero no Windows Vista) puede usar el comando convertto-json incorporado:
PS E:> $topicsjson = import-csv .\itinerary-all.csv | ConvertTo-Json
PS E:\> $topicsjson.Length
11909
PS E:\> $topicsjson.getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Si no puede encontrar una solución existente, es bastante fácil construir una solución básica en Java. Acabo de escribir uno para un cliente y me llevó solo un par de horas, incluidas las herramientas de investigación.
Apache POI leerá el binario de Excel. http://poi.apache.org/
JSONObject construirá el JSON
Después de eso, solo es cuestión de iterar a través de las filas en los datos de Excel y construir una estructura JSON. Aquí hay un pseudocódigo para el uso básico.
FileInputStream inp = new FileInputStream( file );
Workbook workbook = WorkbookFactory.create( inp );
// Get the first Sheet.
Sheet sheet = workbook.getSheetAt( 0 );
// Start constructing JSON.
JSONObject json = new JSONObject();
// Iterate through the rows.
JSONArray rows = new JSONArray();
for ( Iterator<Row> rowsIT = sheet.rowIterator(); rowsIT.hasNext(); )
{
Row row = rowsIT.next();
JSONObject jRow = new JSONObject();
// Iterate through the cells.
JSONArray cells = new JSONArray();
for ( Iterator<Cell> cellsIT = row.cellIterator(); cellsIT.hasNext(); )
{
Cell cell = cellsIT.next();
cells.put( cell.getStringCellValue() );
}
jRow.put( "cell", cells );
rows.put( jRow );
}
// Create the JSON.
json.put( "rows", rows );
// Get the JSON text.
return json.toString();
Esto funciona para mí y se ejecuta en el lado del cliente: http://www.convertcsv.com/csv-to-json.htm
Acabo de encontrar esto:
http://tamlyn.org/tools/csv2json/
(Nota: debe tener su archivo csv disponible a través de una dirección web)
Pruebe la pequeña herramienta gratuita:
http://keyangxiang.com/csvtojson/
Utiliza node.js módulo csvtojson
Ninguna de las soluciones existentes funcionó, así que rápidamente pirateé un script que haría el trabajo. También convierte cadenas vacías en nulos y separa la fila de encabezado para JSON. Es posible que deba ajustarse según el dialecto CSV y el juego de caracteres que tenga.
#!/usr/bin/python
import csv, json
csvreader = csv.reader(open('data.csv', 'rb'), delimiter='\t', quotechar='"')
data = []
for row in csvreader:
r = []
for field in row:
if field == '': field = None
else: field = unicode(field, 'ISO-8859-1')
r.append(field)
data.append(r)
jsonStruct = {
'header': data[0],
'data': data[1:]
}
open('data.json', 'wb').write(json.dumps(jsonStruct))
En lugar de convertidores codificados, ¿qué tal el soporte CSV para Jackson (procesador JSON): https: //github.com/FasterXML/jackson-dataformat-csv . Así que el núcleo Jackson puede leer JSON como POJOs, Maps, JsonNode
, casi cualquier cosa. Y el soporte CSV puede hacer lo mismo con CSV. Combine los dos y es un convertidor muy potente pero simple entre múltiples formatos (ya hay backends para XML, YAML y más)
Puede encontrar un artículo que muestra cómo hacerlo aquí .
Vea si esto ayuda: Volver a CSV - Convertir texto CSV a Objetos; a través de JSON
Esta es una publicación de blog publicada en noviembre de 2008 que incluye el código C # para proporcionar una solución.
De la introducción en la publicación del blog:
Como Json es más fácil de leer y escribir que Xml. Se deduce que CSV (valores separados por comas) es más fácil de leer y escribir que Json. CSV también tiene herramientas como Excel y otras que facilitan el trabajo y la creación. Entonces, si alguna vez desea crear un archivo de configuración o datos para su próxima aplicación, aquí hay un código para convertir CSV a JSON en objetos POCO