总的来说,我是 JSON 的相对新手。我正在尝试在 Google Apps 脚本中实现一些功能。
我的函数调用 www.goldpricez.com 的 API 并接收一些关于世界各地黄金价格的数据,在这种情况下,我想返回一个特定值(黄金价格,以 MAD 表示)。
function fetchGoldRates() {
var currency = "mad";
var unit = "gram";
var url = 'http://goldpricez.com/api/rates/currency/' + currency + '/measure/' + unit;
var params = {
'method': 'GET',
'muteHttpExceptions': true,
'headers': {
'X-API-KEY': '###'
}
};
var response = UrlFetchApp.fetch(url,params);
var parsedData = JSON.parse(response.getContentText());
Logger.log(parsedData); //Works and include the data I want in the object gram_in_mad
Logger.log(parsedData.gram_in_mad); //Returns Null
}
这是我收到的 JSON 数据......以 pretty-print 可视化格式。
{
"ounce_price_usd": "1729.54",
"gmt_ounce_price_usd_updated": "26-05-2020 04:18:01 am",
"ounce_price_ask": "1729.54",
"ounce_price_bid": "1729.03",
"ounce_price_usd_today_low": "1724.91",
"ounce_price_usd_today_high": "1730.33",
"usd_to_mad": "9.871449",
"gmt_mad_updated": "26-05-2020 12:05:00 am",
"ounce_in_mad": 17073.066,
"gram_to_ounce_formula": 0.0321,
"gram_in_usd": 55.518234,
"gram_in_mad": 548.0454
}
我无法访问我想要的单个元素
gram_in_mad
,我不明白为什么。这是 Google Apps Script 的记录器控制台,显示了我的日志行。
最佳答案
从你的问题和脚本,
This is the JSON data I receive back...in a pretty print visualized format.
的值是 JSON.stringify(parsedData)
的值, parsedData.gram_in_mad
返回 548.0454
. This is the JSON data I receive back...in a pretty print visualized format.
的值是 parsedData
的值,我以为在response
的情况下的 var response = UrlFetchApp.fetch(url,params);
, parsedData
即使 var parsedData = JSON.parse(response.getContentText());
也可能是字符串用来。 那么下面的修改呢?
从:
var parsedData = JSON.parse(response.getContentText());
到:
var parsedData = JSON.parse(JSON.parse(response.getContentText()));
关于json - Google Apps 脚本 : Returning "null" when trying to select a specific object in a API response but I can see it in the original response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62013224/