Importer des données JSON en feuilles Google
-
27-09-2019 - |
Question
Je tire des données d'un service Web et il est formaté en JSON. Je suis en train d'écrire un script Google Apps pour Google Sheets qui peupleront les données pour moi. Mon problème est, je ne peux pas sembler l'obtenir pour analyser dehors.
Faire:
var dataset = myJSONtext;
Browser.msgbox(dataset.item[0].key);
erreurs, en disant:
item [0] est pas défini.
Y at-il construit de façon que je devrais faire cela?
La solution
Script Apps est (à peu près) juste Javascript; plaine vieux JSON.parse
est votre meilleure option pour l'analyse syntaxique JSON en une représentation de l'objet.
Vous pouvez également utiliser JSON.stringify
pour sérialiser un objet dans une représentation de chaîne.
Autres conseils
Pour ceux qui voient dans ce 2011+, comme à pointe par Henrique Abreu au forum de support Google, Utilities.jsonParse est / sera dépréciée. Comme vous pouvez le voir sur le fil, il y a un bug avec cette fonction qu'il ne fonctionne pas lorsque vos clés sont des nombres, par exemple « 1234 ».
Comme suggéré, vous devez utiliser JSON.stringify / parse.
2013 mise à jour - Consultez la bibliothèque ImportJSON à
http://blog.fastfedora.com/projects/import-json
« importe les données ImportJSON des API JSON publiques dans Google Spreadsheets. Elle vise à faire fonctionner de façon similaire à la façon dont Google fonctionne de feuille de calcul natif travail ImportData et ImportXML. »
code ici et il a présenté à la Galerie Script: https://raw.github.com/fastfedora/google-docs/master/ scripts / ImportJSON / Code.gs
Exemple d'utilisation: Après avoir mis le code dans votre éditeur de Google tableur Script, puis collez ce 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")
Cette essentiel: https://gist.github.com/varun-raj/5350595a730a62ca1954
Remplacer
http://example.com/feeds?type=json
avec votre JSON url
Ajoutez vos entités ici
rows.push([data.id, data.name,data.email]);