convertire CSV / XLS in JSON? [chiuso]
Domanda
Qualcuno sa se esiste un'applicazione che mi permetterà di convertire preferibilmente XLS in JSON?
Mi accontenterò anche di un convertitore da CSV poiché è quello che probabilmente finirò per dover scrivere da solo se non c'è nulla in giro.
Soluzione
Questo ha funzionato perfettamente per me e NON richiede un caricamento di file:
Altri suggerimenti
Puoi provare questo strumento che ho creato:
Converte in JSON, XML e altri.
È anche tutto lato client, quindi i tuoi dati non escono mai dal tuo computer.
Da Powershell 3.0 (fornito con Windows 8, disponibile per Windows 7 e Windows Server 2008 ma non Windows Vista) puoi usare il comando incorporato convertto-json:
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
Se non riesci a trovare una soluzione esistente è abbastanza facile crearne una base in Java. Ne ho appena scritto uno per un cliente e ci sono volute solo un paio d'ore compresi gli strumenti di ricerca.
Il PDI di Apache leggerà il file binario di Excel. http://poi.apache.org/
JSONObject costruirà il JSON
Dopodiché si tratta solo di scorrere le righe nei dati di Excel e creare una struttura JSON. Ecco alcuni pseudo codici per l'utilizzo di base.
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();
Questo funziona per me e funziona sul lato client: http://www.convertcsv.com/csv-to-json.htm
Ho appena trovato questo:
http://tamlyn.org/tools/csv2json/
(Nota: devi avere il tuo file CSV disponibile tramite un indirizzo web)
Prova il piccolo strumento gratuito:
http://keyangxiang.com/csvtojson/
Utilizza node.js modulo csvtojson
Nessuna delle soluzioni esistenti ha funzionato, quindi ho rapidamente hackerato insieme uno script che avrebbe fatto il lavoro. Converte anche stringhe vuote in null e separa la riga di intestazione per JSON. Potrebbe essere necessario sintonizzarsi a seconda del dialetto CSV e del set di caratteri che hai.
#!/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))
Invece di convertitori hard-coded, che ne dici del supporto CSV per Jackson (processore JSON): https: //github.com/FasterXML/jackson-dataformat-csv . Quindi il core Jackson può leggere JSON come POJO, Maps, JsonNode
, quasi tutto. E il supporto CSV può fare lo stesso con CSV. Unisci i due ed è un convertitore molto potente ma semplice tra più formati (ci sono già backend per XML, YAML e altri in fase di aggiunta).
Un articolo che mostra come fare questo può essere trovato qui .
Verifica se questo aiuta: Torna a CSV - Converti testo CSV in Oggetti; tramite JSON
Questo è un post sul blog pubblicato a novembre 2008 che include il codice C # per fornire una soluzione.
Dall'introduzione sul post del blog:
Poiché Json è più facile da leggere e scrivere, allora Xml. Ne consegue che CSV (valori separati da virgola) è più facile da leggere e scrivere di Json. CSV ha anche strumenti come Excel e altri che rendono facile lavorare e creare. Quindi, se mai vuoi creare una configurazione o un file di dati per la tua prossima app, ecco un po 'di codice per convertire CSV in JSON in oggetti POCO