javascript api - Importieren Sie JSON-Daten in Google Spreadsheet





importxml sheets (5)


JSON.parse

Für diejenigen, die dies in 2011+ sehen, wird, wie Henrique Abreu im Google-Supportforum darauf hingewiesen hat , Utilities.jsonParse veraltet sein. Wie Sie aus dem Thread sehen können, gibt es einen Fehler mit dieser Funktion, der nicht funktioniert, wenn Ihre Schlüssel Zahlen sind, zB "1234".

Wie empfohlen sollten Sie JSON.stringify / parse verwenden.

Ich ziehe Daten von einem Webservice herunter und es wird als JSON formatiert. Ich schreibe ein Google Apps-Skript für Google Tabellenkalkulation, das die Daten für mich ausfüllen wird. Mein Problem ist, ich kann es anscheinend nicht verstehen.

tun:

var dataset = myJSONtext;
Browser.msgbox(dataset.item[0].key); 

Fehler aus, das Element [0] ist nicht definiert.

Gibt es einen eingebauten Weg, wie ich das machen sollte?

Jede Hilfe wäre erwünscht.







A 2013 Update - Überprüfen Sie die ImportJSON-Bibliothek unter

http://blog.fastfedora.com/projects/import-json

"ImportJSON importiert Daten aus öffentlichen JSON-APIs in Google Spreadsheets. Es soll ähnlich funktionieren wie die native Google Spreadsheet-Funktion ImportData und ImportXML funktioniert."

Code hier verfügbar und er hat es in der Script Gallery eingereicht: https://raw.github.com/fastfedora/google-docs/master/scripts/ImportJSON/Code.gs

Verwendungsbeispiel: Nachdem Sie den Code in den Skript-Editor Ihrer Google-Tabelle eingegeben haben, fügen Sie ihn in die Zelle A1 des Arbeitsblatts ein:

=ImportJSON("http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=json", "/feed/entry/title,/feed/entry/content",               "noInherit,noTruncate,rawHeaders")



Apps Script ist (ziemlich) nur Javascript; plain-old JSON.parse ist die beste Option zum Analysieren von JSON in einer Objektdarstellung.

Sie können JSON.stringify auch verwenden, um ein Objekt in eine Zeichenfolgendarstellung zu serialisieren.




Hinweis : Seit 2019 sind viele der alten Schwachstellen, die zu den in dieser Frage diskutierten Präventionsmaßnahmen führen, in modernen Browsern nicht mehr ein Problem. Ich möchte die Antwort unten als historische Kuriosität belassen, aber wirklich hat sich das ganze Thema seit 2010 (!!) radikal verändert, als dies gefragt wurde.

Es verhindert, dass es als Ziel eines einfachen <script> -Tags verwendet wird. (Nun, das verhindert es nicht, aber es macht es unangenehm.) Auf diese Weise können Bösewichte dieses Skript-Tag nicht einfach in ihre eigene Website einfügen und sich auf eine aktive Sitzung verlassen, um den Inhalt abzurufen.

Bearbeiten - Beachten Sie den Kommentar (und andere Antworten). Das Problem hat mit untergeordneten integrierten Einrichtungen zu tun, insbesondere mit den Object und Array Konstruktoren. Diese können so geändert werden, dass ansonsten harmloses JSON bei der Analyse Angreifercode auslösen kann.







javascript google-spreadsheet google-apps-script