Importer des données JSON dans Google Spreadsheet
Je retire des données d'un webservice et il est formaté en tant que JSON. J'écris un script google apps pour Google spreadsheet qui remplira les données pour moi. mon problème est que je n'arrive pas à l'obtenir à analyser.
Faire:
var dataset = myJSONtext;
Browser.msgbox(dataset.item[0].key);
Erreurs, disant item [0] n'est pas défini.
Y a-t-il une manière construite de le faire?
Toute aide serait appréciée.
4 réponses
Apps script est (à peu près) juste Javascript; plain-old JSON.parse
est votre meilleure option pour analyser JSON dans une représentation d'objet.
Vous pouvez également utiliser JSON.stringify
pour sérialiser un objet dans une représentation de chaîne.
Pour ceux qui voient cela en 2011+, comme l'a souligné par Henrique Abreu au Forum de support Google, Utilities.jsonParse est / sera obsolète. 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 devriez utiliser JSON.stringify / parse.
Une mise à jour 2013 - consultez 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 à la façon dont les fonctions de feuille de calcul Google natives ImportData et ImportXML fonctionnent."
Code disponible ici et il l'a soumis au Script Galerie: 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, 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 cet essentiel : 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]);