MODIFICA:entry.content.$t
è il campo errato per accedere alle singole celle. entry.gsx $ [intestazione colonna cellulare] è il metodo corretto. Mi scuso e grazie per aver contribuito a risolvere questo.Parse JSON dal foglio di calcolo Google
domanda originale:
sto cercando di analizzare JSON data from a Google Spreadsheet. Il problema è che il campo delle voci restituisce una stringa che è un'intera riga del foglio di calcolo, ma appare come un oggetto non valido. In che modo altre persone analizzano questi dati? Ecco ciò che il nodo del contenuto appare come:
"content":
{
"type" :"text",
"$t" :"location: 780 Valencia St San Francisco, CA 94110,
phonenumber: (555) 555-5555,
website: http://www.780cafe.com,
latitude: 37.760505,
longitude: -122.421447"
},
guardare con attenzione, il campo $t
restituisce una intera stringa che è una riga del foglio di calcolo di Google. Quindi, restituisce una stringa: location: 780 Valencia St San Francisco, CA 94110, phonenumber: (555) 555-5555...
Ulteriore aggravamento di questo problema è che alcune celle del foglio di calcolo hanno virgole (come indirizzi) che non sono sfuggite o quotate. Qualcosa di simile
jQuery.parseJSON(entry.content.$t)
o
eval('('+ entry.content.$t + ')')
genera un errore. Suppongo che l'espressione regolare sia un'opzione, ma spero che altri possano averlo risolto in un modo più elegante. Grazie per l'aiuto!
Qual è la richiesta che si usa per ottenere i dati JSON? Usi le celle del tipo o l'elenco dei tipi? (vedi http://code.google.com/apis/gdata/samples/spreadsheet_sample.html) – HBP
Guardando agli esempi, penso che stai facendo qualcosa di sbagliato - sia nel modo in cui stai richiedendo il JSON o nei dati del foglio di calcolo stesso. Da quello che posso vedere, non si dovrebbe ricevere un'intera riga come campo di testo; dovresti ottenere una combinazione di oggetti e matrici nei dati per indicare righe e colonne. –
Doh! L'avevo capito. Avete capito bene. Stavo estraendo il nodo sbagliato Apparentemente, restituisce singoli oggetti per ogni cella. Errore mio. Grazie mille per aver catturato questo. – jrue