我正在尝试通过Youtube ContentID API获取AssetID的所有权信息。我可以通过 API 资源管理器查看我需要的数据,但似乎无法使用点表示法向下钻取数据。
以下是 API 资源管理器的输出:
{
"kind": "youtubePartner#asset",
"id": "A146063471697194",
"type": "music_video",
"ownership": {
"kind": "youtubePartner#rightsOwnership",
"general": [
{
"ratio": 100,
"owner": "Indmusic",
"type": "exclude"
}
]
},
"ownershipEffective": {
"kind": "youtubePartner#rightsOwnership",
"general": [
{
"ratio": 100,
"owner": "Indmusic",
"type": "exclude"
}
]
}
}
访问"所有者"时,我收到未定义而不是列出的值。
var url2 = _.sprintf('https://www.googleapis.com/youtube/partner/v1/assets/%s?fetchMetadata=effective&fetchOwnership=effective&key=%s',id,API_KEY);
var result2 = JSON.parse(UrlFetchApp.fetch(url2, getUrlFetchOptions()).getContentText());
Logger.log(result2.ownership.general.owner);
返回未定义
我尝试过所有权和所有权,它们都是未定义的。我可以从result2.ownership.general记录数据,但除此之外没有任何东西。
你可以通过以下 [括号] 判断 general 是一个数组:
"general": [
{
"ratio": 100,
"owner": "Indmusic",
"type": "exclude"
}
]
尝试:Logger.log(result2.ownership.general[0].owner);
通常,声明为数组后,即使数组中只有 1 个项目,也需要位置 [0]。