我从Web服务中提取数据,格式为JSON。我正在为Google表格编写Google Apps脚本,以便为我填充数据。我的问题是,我似乎无法解析它。
这样做的:
var dataset = myJSONtext;
Browser.msgbox(dataset.item[0].key);
错误,说:
项目[0]未定义。
是否有一些内置方式我应该这样做?
答案 0 :(得分:55)
对于那些在2011年以上看到这一点的人,如Henrique Abreu在Google支持论坛上pointed out那样,Utilities.jsonParse将被弃用。正如你从线程中看到的那样,这个函数存在一个错误,当你的键是数字时它就不起作用,即“1234”。
根据建议,您应该使用JSON.stringify / parse。
答案 1 :(得分:18)
2013年更新 - 查看
上的ImportJSON库http://blog.fastfedora.com/projects/import-json
“ImportJSON将公共JSON API中的数据导入Google Spreadsheets。它的目的与本机Google Spreadsheet的ImportData和ImportXML功能相似。”
此处提供的代码,他已将其提交到脚本库: https://raw.github.com/fastfedora/google-docs/master/scripts/ImportJSON/Code.gs
使用示例:将代码放入Google电子表格的脚本编辑器后,将其粘贴到工作表的单元格A1中:
=ImportJSON("http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=json", "/feed/entry/title,/feed/entry/content", "noInherit,noTruncate,rawHeaders")
答案 2 :(得分:14)
应用程序脚本(几乎)只是Javascript;普通的JSON.parse
是将JSON解析为对象表示的最佳选择。
您还可以使用JSON.stringify
将对象序列化为字符串表示形式。
答案 3 :(得分:1)
使用这个要点: https://gist.github.com/varun-raj/5350595a730a62ca1954
替换
http://example.com/feeds?type=json
使用您的JSON网址
在此处添加您的实体
rows.push([data.id, data.name,data.email]);