我有 googlesheets 函数,可以解析 json 并导入到工作表中,您可以在 ImportJson 文件中找到该函数的代码。
function IMPORTJSON(url,xpath){
try{
// /rates/EUR
var res = UrlFetchApp.fetch(url);
var content = res.getContentText();
var json = JSON.parse(content);
var patharray = xpath.split("/");
//Logger.log(patharray);
for(var i=0;i<patharray.length;i++){
json = json[patharray[i]];
}
//Logger.log(typeof(json));
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";
}
}
这些功能非常简单且不言自明。披露我从这里得到了这个功能。 “https://www.youtube.com/watch?v=EXKhVQU37WM”
我有一些此函数无法满足的附加要求。需要在 JSON 格式的 API 输出中搜索值并打印整个数组内容。
例如,我有一个 JSON 输出,如下所示。
{
"symbol" : "AAPL",
"historicalDCF" : [ {
"date" : "2019-03-30",
"Stock Price" : 190.5064,
"DCF" : 199.51439324614452
}, {
"date" : "2018-12-29",
"Stock Price" : 156.4638,
"DCF" : 165.25974241335186
}, {
"date" : "2018-09-29",
"Stock Price" : 224.6375,
"DCF" : 233.0488839004929
}, {
"date" : "2018-06-30",
"Stock Price" : 184.3734,
"DCF" : 192.36145120758877
}, {
"date" : "2018-03-31",
"Stock Price" : 163.5502,
"DCF" : 172.0839412239145
}, {
"date" : "2017-12-30",
"Stock Price" : 168.339,
"DCF" : 178.05212237708827
}, {
"date" : "2017-09-30",
"Stock Price" : 149.7705,
"DCF" : 160.23613044781487
}, {
"date" : "2017-07-01",
"Stock Price" : 139.1847,
"DCF" : 150.3852802404117
}, {
"date" : "2017-04-01",
"Stock Price" : 138.8057,
"DCF" : 148.7456306248566
}, {
"date" : "2016-12-31",
"Stock Price" : 111.7097,
"DCF" : 120.02897160465633
}, {
"date" : "2016-09-24",
"Stock Price" : 108.0101,
"DCF" : 116.70616209306208
}
]
}
您还可以在此链接“https://financialmodelingprep.com/api/v3/company/historical-discounted-cash-flow/AAPL?period=quarter”上查看此 API 的实时版本
要获取“2019-03-30”的 DCF 值,我可以简单地使用如下函数:
=IMPORTJSON("https://financialmodelingprep.com/api/v3/company/historical-discounted-cash-flow/AAPL?period=quarter","historicalDCF/0/DCF")
如果我需要搜索日期并获取股票价格,该怎么办?例如,我需要获取该日期“2017-09-30”的股票价格和 DCF 的值。在不知道数组位置的情况下我该如何做到这一点?
因此,为此我需要帮助,通过创建新函数或修改现有函数来获得此功能。
非常感谢您的帮助,并提前感谢所有的专家。
最佳答案
json.historicalDCF.filter((el) => el.date === "2017-07-01") 将返回与该日期匹配的对象。
您可以获得如下返回:
function findByDate(dateParam) {
return json.historicalDCF.filter((el) => el.date === dateParam)
}
var theInfoIWantVariable = findByDate("2017-1-1-make-sure-this-is-a-string")
关于javascript - 需要在 JSON 格式的 API 输出中搜索值并打印整个数组内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59762379/