web-dev-qa-db-fra.com

convertir CSV / XLS en JSON?

Est-ce que quelqu'un sait s'il existe une application qui me permettra de convertir de préférence XLS en JSON?

Je vais aussi me contenter d'un convertisseur CSV car c'est ce que je vais probablement devoir écrire moi-même s'il n'y a rien.

138
mkoryak

Cela a parfaitement fonctionné pour moi et ne nécessite PAS de téléchargement de fichier:

https://github.com/cparker15/csv-to-json?files=1

76
zmonteca

Vous pouvez essayer cet outil que j'ai créé:

M. Convertisseur de données

Il convertit en JSON, XML et autres.

Il s’agit également du côté client, afin que vos données ne quittent jamais votre ordinateur.

193
Shan Carter

Depuis Powershell 3.0 (livré avec Windows 8, disponible pour Windows 7 et Windows Server 2008 mais pas avec Windows Vista), vous pouvez utiliser le commandlet intégré 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              

Page d'aide en ligne sur Technet

34
knb

Si vous ne pouvez pas trouver une solution existante, il est assez facile de créer une solution de base en Java. Je viens d’en écrire un pour un client et cela n’a pris que quelques heures, y compris la recherche d’outils.

Apache POI lira le binaire Excel. http://poi.Apache.org/

JSONObject construira le JSON

Ensuite, il suffit de parcourir les lignes des données Excel et de créer une structure JSON. Voici un pseudo-code pour l’utilisation de 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();
26
Matt York

Cela fonctionne pour moi et fonctionne côté client: http://www.convertcsv.com/csv-to-json.htm

12
dataman

Je viens de trouver ceci:

http://tamlyn.org/tools/csv2json/

(Remarque: votre fichier csv doit être disponible via une adresse Web)

6
DanDan

Essayez l’outil gratuit minuscule:

http://keyangxiang.com/csvtojson/

Il utilise node.js module csvtojson

6
Keyang

Aucune des solutions existantes n’ayant fonctionné, j’ai rapidement mis au point un script qui ferait le travail. Convertit également les chaînes vides en NULL et sépare la ligne d'en-tête pour JSON. Peut-être devrez-vous régler en fonction du dialecte CSV et du jeu de caractères que vous avez.

#!/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))
5
Tronic

Au lieu de convertisseurs codés en dur, que diriez-vous de la prise en charge CSV pour Jackson (processeur JSON): https://github.com/FasterXML/jackson-dataformat-csv . Donc, le noyau de Jackson peut lire le JSON sous forme de POJO, de cartes, de JsonNode, de presque tout. Et le support CSV peut faire la même chose avec CSV. Combinez les deux et vous obtiendrez un convertisseur simple mais très puissant entre plusieurs formats (il existe déjà des bases de données pour XML, YAML, etc.).

Vous pouvez trouver un article expliquant comment faire cela ici .

4
StaxMan

Voyez si cela vous aide: Retour à CSV - Convertir un texte CSV en objet; via JSON

Ce billet de blog publié en novembre 2008 inclut du code C # pour fournir une solution.

De l'intro sur le blog:

Comme Json est plus facile à lire et à écrire, alors XML. Il en résulte que CSV (valeurs séparées par des virgules) est plus facile à lire et à écrire que Json. CSV dispose également d'outils tels qu'Excel et d'autres qui facilitent la création et le travail. Donc, si vous voulez un jour créer un fichier de configuration ou de configuration pour votre prochaine application, voici du code pour convertir des objets CSV en JSON en objets POCO

3
qxotk