Je tire des données d'un service Web et elles sont formatées en JSON. J'écris un script Google Apps pour Google Sheets qui remplira les données pour moi. Mon problème est que je n'arrive pas à le faire analyser.
Faire:
var dataset = myJSONtext;
Browser.msgbox(dataset.item[0].key);
des erreurs, en disant:
l'élément [0] n'est pas défini.
Y a-t-il une manière intégrée de faire cela?
Le script Apps est (à peu près) juste Javascript; ancien (JSON.parse
est votre meilleure option pour analyser JSON dans une représentation d'objet.
Vous pouvez aussi utiliser JSON.stringify
pour sérialiser un objet en une représentation sous forme de chaîne.
Pour ceux qui voient cela en 2011+, comme souligné par Henrique Abreu sur le forum de support de Google, Utilities.jsonParse est/sera déprécié. Comme vous pouvez le voir sur le fil, il y a un bug avec cette fonction qui ne fonctionne pas lorsque vos clés sont des nombres, c'est-à-dire "1234".
Comme suggéré, vous devez utiliser JSON.stringify/parse.
Une mise à jour 2013 - Découvrez la bibliothèque ImportJSON à
http://blog.fastfedora.com/projects/import-json
"ImportJSON importe les données des API JSON publiques dans Google Spreadsheets. Il vise à fonctionner de manière similaire au fonctionnement des fonctions natives de Google Spreadsheet ImportData et ImportXML."
Code disponible ici et il l'a soumis à la galerie de scripts: https://raw.github.com/fastfedora/google-docs/master/scripts/ImportJSON/Code.gs
Exemple d'utilisation: après avoir placé le code dans l'éditeur de script de votre feuille de calcul Google, puis collez-le dans la cellule A1 de la feuille:
=ImportJSON("http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=json", "/feed/entry/title,/feed/entry/content", "noInherit,noTruncate,rawHeaders")
Utilisez ce Gist: https://Gist.github.com/varun-raj/5350595a730a62ca1954
Remplacer
http://example.com/feeds?type=json
avec votre URL JSON
Ajoutez vos entités ici
rows.Push([data.id, data.name,data.email]);