EDIT:entry.content.$t
ist das falsche Feld für den Zugriff auf einzelne Zellen. entry.gsx $ [Zelle Spaltenkopf] ist die richtige Methode. Entschuldigung und vielen Dank für Ihre Hilfe.Parse JSON von Google Spreadsheet
Original Frage:
Ich versuche JSON data from a Google Spreadsheet zu analysieren. Das Problem ist, dass das Feld "entries" eine Zeichenfolge zurückgibt, die eine ganze Zeile der Tabelle darstellt, aber als ein fehlerhaftes Objekt angezeigt wird. Wie analysieren andere Leute diese Daten? Hier ist, was der Inhalt Knoten wie folgt aussieht:
"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"
},
Schauen Sie genau hin, das $t
Feld gibt eine ganze Zeichenfolge, die eine Zeile in der Google-Tabelle ist. So entry.content.$t
gibt eine Zeichenfolge: location: 780 Valencia St San Francisco, CA 94110, phonenumber: (555) 555-5555...
Dieses Problem wird noch dadurch verschärft, dass einige der Zellen in der Tabelle Kommas (wie Adressen) haben, die nicht maskiert oder zitiert werden. So etwas wie
jQuery.parseJSON(entry.content.$t)
oder
eval('('+ entry.content.$t + ')')
wirft einen Fehler. Ich denke, Regex ist eine Option, aber ich hoffe, dass andere dies auf elegantere Weise gelöst haben. Danke für die Hilfe!
helfen sollte Was die Anfrage auf Sie verwenden, um die JSON-Daten zu bekommen? Verwenden Sie Zellen oder Typenliste? (siehe http://code.google.com/apis/gdata/samples/spreadsheet_sample.html) – HBP
Wenn ich die Beispiele weiter betrachte, denke ich, dass Sie etwas falsch machen - entweder in der Art, wie Sie das JSON anfordern oder in den Daten der Tabellenkalkulation selbst. Von dem, was ich sehen kann, sollten Sie nicht eine ganze Zeile als ein Textfeld erhalten; Sie sollten eine Kombination aus Objekten und Arrays in Ihren Daten erhalten, um Zeilen und Spalten zu kennzeichnen. –
Doh! Ich habe es herausgefunden. Du hast es. Ich habe den falschen Knoten extrahiert. Offensichtlich gibt es einzelne Objekte für jede Zelle zurück. Mein Fehler. Danken Sie so viel dafür, das zu fangen. – jrue