Reputation: 3
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.
Here's the 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:
`
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.
Thanks
Upvotes: 0
Views: 220
Reputation: 1930
The data field in your object is an Array so you need to put the index in order to access the content, i.e.
data = JSON.parse(body)
console.log data[0].images
Upvotes: 1