80 votes

Convertir le format JSON en format CSV pour MS Excel

J'ai reçu un fichier JSON mais je ne sais pas comment le lire. Existe-t-il un convertisseur qui me permette de produire un joli fichier CSV afin de pouvoir le charger dans MS Excel ? Je ne comprends pas JSON, donc ce serait génial si quelqu'un écrivait un script ou me liait à un qui ferait le travail.

J'ai trouvé quelque chose de proche chez http://json.bloople.net mais, malheureusement, c'est du JSON au HTML.

Edit : jsonformat.com est encore plus proche, mais ce n'est toujours pas CSV.

0 votes

Il y a une raison. CSV n'est pas hiérarchique/structuré/bien formé, JSON/HTML/XML l'est. Voulez-vous simplement obtenir une chaîne massive ? (sans se soucier de l'ordre) ?

6 votes

J'ai juste besoin de quelque chose qui peut être lu sur un format de tableau, je pensais que l'utilisation du CSV était la bonne solution puisque je peux juste l'ouvrir sur Excel et commencer à éditer les données.

1 votes

Il convient de noter que tous les JSON ne peuvent pas être convertis de manière fiable en CSV. Voici quelques exemples de JSON qui n'ont pas pu l'être : json.org/exemple.html Il semble toutefois que la structure du JSON que vous utilisez soit relativement simple.

71voto

Zachary Points 5216

Je ne suis pas sûr de ce que vous faites, mais ceci va passer de JSON à CSV en utilisant JavaScript. C'est en utilisant le bibliothèque JSON open source Il suffit donc de télécharger JSON.js dans le même dossier que celui dans lequel vous avez sauvegardé le code ci-dessous pour qu'il analyse la valeur JSON statique dans le dossier de l'utilisateur. json3 en CSV et vous invite à télécharger/ouvrir dans Excel.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>JSON to CSV</title>
    <script src="scripts/json.js" type="text/javascript"></script>
    <script type="text/javascript">
    var json3 = { "d": "[{\"Id\":1,\"UserName\":\"Sam Smith\"},{\"Id\":2,\"UserName\":\"Fred Frankly\"},{\"Id\":1,\"UserName\":\"Zachary Zupers\"}]" }

    DownloadJSON2CSV(json3.d);

    function DownloadJSON2CSV(objArray)
    {
        var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

        var str = '';

        for (var i = 0; i < array.length; i++) {
            var line = '';

            for (var index in array[i]) {
                line += array[i][index] + ',';
            }

            // Here is an example where you would wrap the values in double quotes
            // for (var index in array[i]) {
            //    line += '"' + array[i][index] + '",';
            // }

            line.slice(0,line.Length-1); 

            str += line + '\r\n';
        }
        window.open( "data:text/csv;charset=utf-8," + escape(str))
    }

    </script>

</head>
<body>
    <h1>This page does nothing....</h1>
</body>
</html>

1 votes

Désolé, je ne suis pas vraiment un programmeur... comment puis-je "utiliser" ceci ?

1 votes

Désolé... soyez indulgent avec moi... dans quel programme dois-je coller ce code ? Doit-il être dans le même répertoire que les fichiers JSON ?

1 votes

C'est du javascript, vous pouvez simplement le coller dans une page web et l'utiliser pour convertir JSON en CSV... Si vous voulez que cela soit enregistré dans un fichier, vous pouvez remplacer "return str ;" par "window.open( "data:text/csv;charset=utf-8," + escape(str) ;".

67voto

Joseph Sturtevant Points 6597

J'ai créé un JsFiddle aquí sur la base de la réponse donnée par Zachary . Il offre une interface utilisateur plus accessible et permet également d'échapper correctement aux guillemets doubles dans les chaînes de caractères.

1 votes

Je l'ai bifurqué pour supporter les paires clé-valeur manquantes jsfiddle.net/gonzif/MfJPF/1 Votre premier objet JSON est utilisé pour définir les clés des colonnes.

2 votes

Ceux-ci sont cool, mais aucun ne supporte les tableaux json. Donc, il ne gère pas [ { "Id":1, "UserName" : "Sam Smith", "Details":{ "hair" : "red", "eyes" : "red" } }]

1 votes

De plus, lorsque je clique sur télécharger, le téléchargement commence avec le nom de fichier "download" et il n'y a pas d'extension de fichier. Pourriez-vous me dire comment je peux renommer le fichier ?

1voto

chinuy Points 55

L'utilisation de Python sera un moyen facile d'obtenir ce que vous voulez.

J'en ai trouvé un en utilisant Google.

" conversion de json en csv à l'aide de python " est un exemple.

1 votes

Je n'ai jamais utilisé Python auparavant, je sais seulement que c'est un langage de programmation, y a-t-il des alternatives ?

0 votes

Vous avez mentionné précédemment que vous pouviez convertir JSON en HTML. Excel est capable d'ouvrir du HTML. Avez-vous essayé ?

0 votes

Les éléments suivants Article EE est basé sur Perl, mais peut vous donner quelques idées, car il peut facilement afficher un fichier JSON sous forme de grille basée sur Dojo, ou le convertir en XLS ou XLSX. Il existe également une solution basée sur Java json2excel disponible sur sourceforge.

1voto

Palesz Points 1288

Vous pouvez utiliser ce gist, assez facile à utiliser, qui stocke vos paramètres dans le stockage local : https://gist.github.com/4533361

0 votes

Je ne comprends pas ce que vous voulez que je tape dans les cases "header", "extract items", ou "Convert item", ni ce que vous voulez que je change dans le code source.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X