简体   繁体   English

HUBOT Coffescript-JSON对象

[英]HUBOT Coffescript - JSON obejct

Wondering if anyone can help me with this - pretty much novice in scripting and not sure if I'm doing it right. 想知道是否有人可以帮助我-脚本编写的新手,不确定我是否做对了。 I need to get an object from this JSON string and it keeps giving me "undefined" error. 我需要从此JSON字符串中获取一个对象,并且它一直给我“未定义”错误。

Here's the 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' } }
    `

And here's my HUBOT script: 这是我的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)
    `

Wondering how can I access this "images" object from Giphy's response. 想知道如何从Giphy的响应中访问此“图像”对象。

Thanks 谢谢

The data field in your object is an Array so you need to put the index in order to access the content, ie 对象中的数据字段是一个数组,因此您需要放置索引才能访问内容,即

data = JSON.parse(body)
console.log data[0].images

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM