Importación de datos JSON en Hojas de cálculo
-
27-09-2019 - |
Pregunta
Me estoy tirando de datos de un servicio web y que tiene el formato JSON. Estoy escribiendo una secuencia de comandos de Google Apps para Hojas de cálculo que poblarán los datos por mí. Mi problema es que parece que no puede conseguir que se omita.
Haciendo:
var dataset = myJSONtext;
Browser.msgbox(dataset.item[0].key);
errores, diciendo:
elemento [0] no está definido.
¿Hay alguna construida en forma que debería estar haciendo esto?
Solución
Aplicaciones guión es (más o menos) justo Javascript; llanura de edad JSON.parse
es la mejor opción para analizar JSON en una representación de objeto.
También puede utilizar JSON.stringify
para serializar un objeto en una representación de cadena.
Otros consejos
Para aquellos que están viendo esto en 2011+, como de Henrique Abreu en el foro de soporte de Google, se Utilities.jsonParse / dejará de estar disponible. Como se puede ver en el hilo, hay un error con esta función que no funciona cuando sus teclas son números, es decir, "1234".
Como se sugirió, debería utilizar JSON.stringify / análisis.
Una actualización de 2013 - Salida en la biblioteca ImportJSON
http://blog.fastfedora.com/projects/import-json
"ImportJSON importa los datos de API JSON públicas en Google Spreadsheets. Su objetivo es operar de manera similar a cómo el trabajo nativa Google funciones de hoja de cálculo y ImportData ImportXML."
Código disponible aquí y que ha presentado a la Galería de secuencias de comandos: https://raw.github.com/fastfedora/google-docs/master/ scripts / ImportJSON / Code.gs
Ejemplo de uso: Después de poner el código en el Editor de secuencias de la hoja de cálculo Google, a continuación, pegar esto en la celda A1 de la hoja:
=ImportJSON("http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=json", "/feed/entry/title,/feed/entry/content", "noInherit,noTruncate,rawHeaders")
Utilice esta GIST: https://gist.github.com/varun-raj/5350595a730a62ca1954
Reemplazar
http://example.com/feeds?type=json
JSON con su url
Añadir sus entidades aquí
rows.push([data.id, data.name,data.email]);