Qu'est-ce que JSON ?
JSON signifie “JavaScript Object Notation”. Il s'agit d'un moyen de représenter les données dans un format simple et facile à lire, qui peut être facilement utilisé par de nombreux langages de programmation.
Imaginez que vous ayez un grand sac de jouets et que vous souhaitiez le ranger. Vous pourriez utiliser différents sacs pour placer chaque type de jouet dans un sac spécifique, comme des poupées dans un sac, des voitures dans un autre sac, etc. De la même manière, JSON permet d'organiser les données en regroupant les informations similaires.
Les fichiers JSON sont comme de petits sacs de données qui contiennent des informations sur des personnes, des animaux ou des objets. Les informations contenues dans un fichier JSON sont organisées en paires “clé-valeur”, ce qui signifie que chaque information a un nom (la “clé”) et une valeur.
Par exemple, si nous voulons stocker des informations sur une boutique en ligne, nous pourrions avoir un fichier JSON qui ressemble à ceci :
{
"shoes": {
"sneakers": {
"colour": "blue",
"brand": "Nike",
"price": 125
},
"trainers": {
"colour": "white",
"brand": "Puma",
"price": 115
},
"running_shoes": {
"colour": "yellow",
"brand": "Asics",
"price": 145
}
}}
Ce fichier JSON contient des informations sur le rayon chaussures d'une boutique en ligne. La première « clé » est la catégorie "shoes". Ensuite, les « clés » de second niveau contiennent les informations sur les types de chaussures.
Les fichiers JSON sont utiles car ils sont faciles à lire et à écrire, et de nombreux langages de programmation les prennent en charge. On les utilise souvent pour stocker et partager des données entre applications ou sites web. Quand vous importez ou exportez des données d'une API, c'est souvent au format JSON.
Comment importer un JSON dans Google Sheets ?
Obtenir le résultat que vous recherchez peut être un véritable défi. Si vous préférez faire appel à l'un de nos consultants experts pour mener à bien votre projet, cliquez ici.
Pour commencer, créez un nouveau fichier Google Sheets en saisissant feuilles.nouveau dans votre navigateur et donnez-lui un nom. Ouvrez l'environnement de développement intégré (IDE) Google Apps Script en cliquant sur “Extensions” et “Apps Script”. Un nouvel onglet s'ouvre, qui ressemble à ceci.
Supprimez les trois lignes de code qui s'y trouvent, donnez un nom au projet, puis copiez et collez le code suivant dans cet espace.
fileId = "139GrQu0oEu1tWAMz5vHMjzmcClxA0FQ9", // Obtenir l'ID du fichier JSON.
sheetName = "Sheet1" // Nom de la feuille à importer json
) {
var files = DriveApp.getFileById(fileId) ; // Spécifier le JSON à récupérer.
var json = JSON.parse(files.getBlob().getDataAsString()) ; //Il faut récupérer les informations JSON qui sont maintenant un énorme morceau de texte, et les analyser au format JSON.
var headers = [“category”, “item”, “colour”, “brand”, “price”] ; // Définir les en-têtes pour chaque colonne. Ceci sera inséré dans la ligne 1.
let values = [] // Il s'agit d'un tableau Javascript vide que vous allez remplir à la ligne 27.
//Vous imbriquez les boucles for parce que le fichier json descend en cascade.
for (let category in json) {
for (let item in json[category]) {
values.push([category, item, json[category][item][‘colour’], json[category][item][‘brand’], json[category][item][‘price’]])
}
}
var ss = SpreadsheetApp.getActiveSpreadsheet() ;
var newSheet = ss.getSheetByName(sheetName) ;
var dataToInsert = [headers].concat(values)// Ici, vous placez les headers dans la première ligne et créez un tableau.
var range = newSheet.getRange(1, 1, dataToInsert.length, dataToInsert[0].length) // obtenir une plage de cellules (row, column, numRows, numColumns)
range.setValues(dataToInsert) ; // définir les valeurs de la plage de cellules
}
Exécution d'un test
Pour tester le script une première fois, cliquez ici pour faire une copie du fichier JSON utilisé dans cet exemple.
Obtenir l'identifiant du fichier
Il faut maintenant récupérer l'ID de votre fichier JSON. Importez-le dans Google Drive, faites un clic droit dessus, sélectionnez « partager » puis cliquez sur « copier le lien ». Collez ce lien quelque part et copiez l'ID situé entre "https://drive.google.com/file/d/" et "/view?usp=sharing". Collez cet ID entre les guillemets doubles de la ligne 18.
Exécution du script
Maintenant que le bon ID de fichier est en place et que le script sait quel fichier récupérer, exécutons-le pour la première fois. Cliquez sur « Enregistrer le projet », puis sur « Exécuter ».
Google vous demande alors l'autorisation d'exécuter le script.
Cliquez sur “Réviser les autorisations” et ensuite sur “Autoriser”.
Il faudra peut-être cliquer encore une fois sur « Exécuter ». Sinon, vous devriez voir que l'exécution a commencé et s'est terminée. Et si nous allons dans la feuille de calcul, nous voyons maintenant ce résultat. Voir le fichier JSON importé est bon signe. Vous êtes ici parce que vous voulez importer votre propre fichier JSON. Maintenant que le script est en place et fonctionne, adaptons-le à votre fichier JSON.
Modifier les “valeurs clés” de votre fichier
Trouver les positions de vos valeurs clés.
Pour cet exemple, nous avons utilisé cinq clés : “category”, “item”, “color”, “brand” et “price”. Pour modifier le script en fonction de votre fichier JSON, double-cliquez sur le fichier JSON dans Google Drive pour en obtenir un aperçu et comparez les clés de l'exemple avec votre fichier JSON. Notez quelle clé de l'exemple correspond à la position de la clé dans votre fichier.
Que faire si votre fichier JSON comporte plus de deux cascades ?
Un fichier JSON a des “cascades”, qui sont les indentations dans lesquelles les valeurs sont écrites. Il est important de le savoir, car le script est écrit pour un fichier JSON ne comportant que deux cascades, mais il se peut que le vôtre en comporte plus de deux.
Dans les lignes 28 et 29 du script, vous pouvez modifier le nombre de cascades que vous souhaitez examiner. Comme ce fichier JSON a une cascade principale et que la deuxième cascade est celle des “éléments”, nous n'utilisons que deux “boucles for”. Si votre fichier JSON comporte plus de deux cascades, vous devrez modifier ce paramètre :
for (let category in json) {
for (let item in json[category]) {
values.push(… )
}
}
A titre d'exemple :
for (let cascade1 in json) {
for (let cascade2 in json[cascade1]) {
for (let cascade3 in json[cascade1][cascade2]) {
values.push(… )
}
}} //Note the extra curly bracket for the added for loop.
Que faire si votre fichier JSON contient plus de quatre catégories ?
Une autre chose à souligner à propos du script est qu'à la ligne 30, vous voyez ceci :
values.push([category, item, json[category][item][‘colour’], json[category][item][‘brand’], json[category][item][‘price’]])
Nous introduisons ces valeurs sous forme de lignes dans un tableau vide et chaque valeur introduite dans ce tableau est séparée par une virgule. Comme vous pouvez le voir, ce fichier JSON contient une catégorie, “shoes”, et trois articles, “sneakers”, “trainers” et “running_shoes”. Pour chacun de ces articles, il existe trois valeurs : “couleur”, “marque” et “prix”.
C'est la raison pour laquelle les valeurs sont notées de cette manière dans ce script. Décomposons-la rapidement afin que vous puissiez mieux la modifier pour votre fichier JSON.
- La première valeur est simple et directe.
‘catégorie’. - Tout comme la deuxième valeur.
‘item’. - Mais avec la troisième valeur, nous devons faire savoir au script qu'il doit regarder à l'intérieur de l'objet Javascript de ‘item’ et renvoyer la valeur de ‘color’. C'est pourquoi la troisième valeur est écrite comme suit :
json[category][item]['colour']. - Il en va de même pour le quatrième élément. Nous examinons l'objet Javascript de ‘item’ et renvoyons ‘brand’.
json[category][item]['brand'] - Enfin, pour le cinquième article, nous restons dans l'objet ‘article’ et renvoyons ‘prix’.
json[category][item]['price']
Modification des valeurs dans le script.
Pour modifier les valeurs du script, revenez-y, appuyez sur CTRL+F et cliquez sur la flèche déroulante pour développer le menu de recherche.
Saisissez le nom de la clé que vous souhaitez remplacer dans la barre située en dessous et cliquez sur cette icône pour remplacer toutes les instances dans le script. Procédez ainsi pour chaque nom de clé que vous souhaitez importer dans les feuilles de calcul Google.
Importer JSON dans Google Sheets
Enfin, prenez votre fichier JSON et placez-le à côté de la ligne 30 du script. Toutes les notations de valeur dans la méthode values.push( ... ) indiquent-elles au script de regarder aux bons endroits ? Si vous pensez que c'est le cas, lancez-vous. Cliquez sur “Exécuter” et voyez quel résultat est créé. Vous obtenez un message d'erreur ? Pas de problème, cela fait partie du processus. Revenez aux lignes 28 à 32 si vous devez modifier quelque chose. La programmation consiste à apporter de légères modifications, à tester, à modifier à nouveau jusqu'à ce que le script fasse ce que vous voulez.
Si vous êtes arrivé jusqu'ici dans cet article, félicitations ! Vous effectuez un travail très technique ou, du moins, vous vous débrouillez tout seul. Quels que soient les résultats que vous obtenez, cela doit être respecté. Si vous n'y arrivez pas, ne vous inquiétez pas. Nous contacter, Si vous avez besoin d'une assistance technique, indiquez-nous le résultat que vous essayez d'obtenir pour votre projet et notre consultant expert pourra vous aider.
