javascript - 在 Google 表格中读取 JSON 数据
问题描述
我正在尝试将 IEXAPI 中的 JSON 数据导入 Google 表格,并在此处找到以下功能:
function IMPORTJSON(url,xpath){
try{
var res = UrlFetchApp.fetch(url);
var content = res.getContentText();
var json = JSON.parse(content);
var patharray = xpath.split("/");
for(var i=0;i<patharray.length;i++){
json = json[patharray[i]];
}
if(typeof(json) === "undefined"){
return "Node Not Available";
} else if(typeof(json) === "object"){
var tempArr = [];
for(var obj in json){
tempArr.push([obj,json[obj]]);
}
return tempArr;
} else if(typeof(json) !== "object") {
return json;
}
}
catch(err){
return "Error getting data";
}
}
我试图阅读的 JSON 是:
[{
"symbol":"AAPL",
"sector":"electronictechnology",
"securityType":"cs",
"bidPrice":0,
"bidSize":0,
"askPrice":0,
"askSize":0,
"lastUpdated":1587067200000,
"lastSalePrice":286.48,
"lastSaleSize":100,
"lastSaleTime":1587067199848,
"volume":357754
}]
但是当我在 Google 表格中调用该函数时,我得到了错误Node Not Available
:
=IMPORTJSON("https://cloud.iexapis.com/stable/tops?token=MY_API_KEY&symbols=aapl", "symbol")
我不明白出了什么问题,因为symbol
是 JSON 中的根节点。有人可以解释一下吗?
解决方案
您的对象被包装在一个数组中。
json = json[0][patharray[i]];
推荐阅读
- three.js - THREE.js 什么是从搅拌机导出的 gltf 添加照明的最佳方法
- testing - 是否有任何使用 Clojure/Clojurescript 进行 devops 和/或自动化测试的记录?
- java - 我无法启动线程,而实现 runnable 似乎无法重现错误
- google-sheets - 谷歌表格从多行和多列中提取特定数据以放入逻辑回归函数
- android - Google Play 64 位要求发布不符合要求
- ios - Snapchat 登录工具包无法重定向到我的应用
- r - 当列值不准确时如何合并两个数据框?
- javascript - 在 firestore 子集合上添加实时侦听器
- datastage - 使用不同的文件运行作业而不重新加载文件
- java - 无法在tomcat中加载静态文件