【问题标题】:How can I get something specific from json in node.js [closed]如何从 node.js 中的 json 获得特定的东西 [关闭]
【发布时间】:2019-08-01 05:58:05
【问题描述】:

我正在尝试使用 googles node.js API https://github.com/googleapis/google-api-nodejs-client 获取 youtube 订阅者数量,并且我也在使用来自 google https://developers.google.com/youtube/v3/ 的 youtube 数据 api 我正在尝试从这里获取订阅者计数 https://www.googleapis.com/youtube/v3/channels?part=statistics&id=channel_id&key=api_key 这就是我有 这是我的代码和我得到的https://hastebin.com/sotejijole.js,subscriberCount 在统计数据中:[Object] 但我不知道如何获得它。

【问题讨论】:

    标签: node.js json youtube


    【解决方案1】:

    您真的应该阅读一些有关按名称访问 JavaScript 对象中的属性的基本文档。

    Working with objects

    Property accessors


    要回答您的具体问题:要访问第一个搜索结果的订阅者数量,或者在您的情况下是唯一的搜索结果,您需要访问内部第一个元素的 subscriberCount 属性items 数组属性如下:

    const parsedResponse = JSON.parse(response);
    
    const subscriberCount = parsedResponse.items[0].statistics.subscriberCount;
    

    简要说明:您解析的响应对象通常包含有关多个 YouTube 频道的信息。我已经组成了两个不同的渠道和相应的统计数据和 etags,如下例所示。

    响应对象的items属性是一个数组,所以关于第一个和最相关的搜索结果的信息将包含在items 数组属性。 items 数组的第一个元素具有 statistics 属性,该属性本身具有 subscriberCount 属性。

    {
        kind: 'youtube#channelListResponse',
        etag: 'XpPGQXPnxQJhLgs6enD_n8JR4Qk/JPcXxXpVfYrflWLNIZU24SubpLk',
        pageInfo: {
            totalResults: 1,
            resultsPerPage: 1
        },
        items: [
            // the first search result
            {
                kind: 'youtube#channel',
                etag: 'FiRsTXPnxQJhLgs6enD_n8JR4Qk/WibSoST9VFEdm73aOWaD9hhI1AM',
                id: '',
                statistics: {
                    viewCount: 12877,
                    commentCount: 43,
                    subscriberCount: 133,
                    hiddenSubscriberCount: false,
                    videoCount: 26
                }
            },
            // the second search result
            {
                kind: 'youtube#channel',
                etag: 'SeCoNdPnxQJhLgs6enD_n8JR4Qk/WibSoST9VFEdm73aOWaD9hhI1AM',
                id: '',
                statistics: {
                    viewCount: 1334440,
                    commentCount: 224,
                    subscriberCount: 1122,
                    hiddenSubscriberCount: false,
                    videoCount: 114
                }
            },
        ]
    }
    

    【讨论】:

    • 谢谢,我会尝试这样做,如果我的问题不清楚,我也向其他人道歉。但是感谢您的回答,希望我现在可以让它工作:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2020-06-26
    • 2021-10-06
    相关资源
    最近更新 更多