web-dev-qa-db-fra.com

Importez des données JSON dans Google Sheets

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?

29
joejoeson

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.

14
Tim McNamara

JSON.parse

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.

55
Anh-Kiet Ngo

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")
18
garec

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]);
1
user3657546