Domanda

sto tirando i dati da un servizio Web ed è formattato come JSON. Sto scrivendo uno script di Google Apps per Google Fogli che popoleranno i dati per me. Il mio problema è che non riesco a farlo analizzare fuori.

Senza fare:

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

errori, dicendo:

  

elemento [0] non è definito.

C'è qualche costruito in modo che dovrei fare questo?

È stato utile?

Soluzione

sceneggiatura Apps è (più o meno) solo Javascript; plain-old JSON.parse è la scelta migliore per il parsing di JSON in una rappresentazione dell'oggetto.

È inoltre possibile utilizzare JSON.stringify per serializzare un oggetto in una rappresentazione di stringa.

Altri suggerimenti

JSON.parse

Per coloro che stanno vedendo questo 2011+, come da Henrique Abreu al forum di supporto di Google, Utilities.jsonParse è / sarà deprecato. Come si può vedere dal thread, c'è un bug con questa funzione che non funziona quando le chiavi sono numeri, vale a dire "1234".

Come suggerito, si dovrebbe utilizzare JSON.stringify / parse.

A 2013 aggiornamento - Check out la biblioteca ImportJSON a

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

"ImportJSON importa i dati da API JSON pubblici in Google Spreadsheets. Ha lo scopo di operare in modo simile a come il lavoro nativa di Google Spreadsheet funzioni ImportData e ImportXML".

Codice disponibile qui e lui ha presentato alla Gallery Script: https://raw.github.com/fastfedora/google-docs/master/ scripts / ImportJSON / Code.gs

utilizzo

Esempio: Dopo aver messo il codice in Script Editor del foglio di lavoro di Google, quindi incolla questo nella cella A1 del foglio:

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

Utilizzare questa sostanza: https://gist.github.com/varun-raj/5350595a730a62ca1954

Sostituire

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

con il JSON url

Aggiungi il tuo entità qui

rows.push([data.id, data.name,data.email]);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top