0

我正在尝试通过 Youtube ContentID API 获取针对 AssetID 的所有权信息。我可以通过 API Explorer 查看我需要的数据,但似乎无法使用点符号深入了解数据。

以下是 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 的数据,但不能低于此。

4

1 回答 1

1

您可以通过以下 [brackets] 判断 general 是一个数组:

"general": [
  {
  "ratio": 100,
  "owner": "Indmusic",
  "type": "exclude"
}
]

试试:Logger.log(result2.ownership.general[0].owner);

通常,已声明为数组,即使数组中只有一项,也需要位置 [0]。

于 2013-09-19T02:00:33.220 回答