0

想知道是否有人可以帮助我 - 几乎是脚本新手,不确定我是否做得对。我需要从此 JSON 字符串中获取一个对象,并且它不断给我“未定义”错误。

这是 JSON:

    `
    { data:
    [ { type: 'gif',
        id: 'Cmr1OMJ2FN0B2',
        slug: 'hello-Cmr1OMJ2FN0B2',
        url: 'https://giphy.com/gifs/hello-Cmr1OMJ2FN0B2',
        bitly_gif_url: 'https://gph.is/2bZufS7',
        bitly_url: 'https://gph.is/2bZufS7',
        embed_url: 'https://giphy.com/embed/Cmr1OMJ2FN0B2',
        username: '',
        source: 'https://www.fanpop.com/clubs/penguins-of-madagascar/images/37800672/title/hello-photo',
        rating: 'g',
        content_url: '',
        source_tld: 'www.fanpop.com',
        source_post_url: 'https://www.fanpop.com/clubs/penguins-of-madagascar/images/37800672/title/hello-photo',
        is_indexable: 0,
        import_datetime: '2016-09-05 13:48:36',
        trending_datetime: '2017-09-19 14:26:18',
        images: [Object],
        title: 'bom dia hello GIF' } ],
    pagination: { total_count: 2516, count: 1, offset: 0 },
    meta:
    { status: 200,
        msg: 'OK',
        response_id: '5a28576867382f644dc7d33b' } }
    `

这是我的 HUBOT 脚本:

    `
    robot.hear /^(no)$|^.*(\sno\s).*$/i, (res) ->
            api_url = 'https://api.giphy.com'
            path = '/v1/gifs/search'
            url = "#{api_url}#{path}"
            robot.http(url)
                .query
                    q: "nono+penguin"
                    rating: 'g'
                    limit: 1
                    fmt: 'json'
                .header('api_key', giphyAuthToken)
                .header('Content-Type', 'application/json')
                .get() (err, res, body) ->
                    # error checking code here 
                    if err
                        console.log err
                    else
                        data = JSON.parse(body)
                        console.log data #this prints above data
                        console.log "success....got giphy response"
                        console.log data.images.original.url #This is giving error that original is undefined   
                        process.exit(1)
    `

想知道如何从 Giphy 的响应中访问这个“图像”对象。

谢谢

4

1 回答 1

1

对象中的数据字段是一个数组,因此您需要放置索引才能访问内容,即

data = JSON.parse(body)
console.log data[0].images
于 2017-12-06T22:06:14.837 回答