Frage

Ich bin ziehen Daten von einem Webdienst, und es wird als JSON formatiert. Ich schreibe ein Google Apps Script für Google Tabellen, die die Daten für mich bevölkern werden. Mein Problem ist, ich kann es nicht scheinen, um zu analysieren, aus.

Doing:

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

Fehler heraus und sagt:

  

Artikel [0] nicht definiert ist.

Gibt es irgendeine Art und Weise in baute ich dies tun sollte?

War es hilfreich?

Lösung

Apps Script ist (ziemlich) nur Javascript; plain-alt JSON.parse ist die beste Wahl für JSON in eine Objektdarstellung Parsen.

Sie können auch JSON.stringify verwenden, um ein Objekt in eine String-Darstellung serialisiert werden.

Andere Tipps

JSON.parse

Für diejenigen, die dies in 2011+, wie wies darauf hin, sehen von Henrique Abreu im Google Support-Forum, Utilities.jsonParse wird / werden als veraltet. Wie Sie aus dem Thread sehen können, gibt es ein Problem mit dieser Funktion, dass es nicht funktioniert, wenn Sie Ihre Schlüssel sind Zahlen, dh „1234“.

Wie bereits angedeutet, sollten Sie JSON.stringify / Parsen verwenden werden.

A 2013 Update - Schauen Sie sich die ImportJSON Bibliothek unter

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

„ImportJSON importieren Daten aus öffentlichen JSON APIs in Google Text & Tabellen. Es zielt darauf ab, wie die native Google-Tabelle Funktionen ImportData- und ImportXML Arbeit in ähnlicher Weise zu betreiben.“

-Code hier und er hat es mit dem Script Gallery vorgelegt: https://raw.github.com/fastfedora/google-docs/master/ scripts / ImportJSON / Code.gs

Beispiel Nutzung: Nachdem Sie den Code in Ihrer Google-Tabelle der Skript-Editor setzte, dann fügen Sie diese in Zelle A1 des Blattes:

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

Mit diesem Kern: https://gist.github.com/varun-raj/5350595a730a62ca1954

Ersetzen

http://example.com/feeds?type=json

mit JSON-URL

Fügen Sie Ihre Entitäten hier

rows.push([data.id, data.name,data.email]);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top