2017-12-06 14 views
0

誰かが私にこれを手伝ってもらえるかどうかわかりません。スクリプト作成の初心者はほとんどいません。私はこのJSON文字列からオブジェクトを取得する必要があり、それは私に "未定義"エラーを与え続けます。ここでHUBOT Coffescript - JSON obejct

は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の応答から、この "画像" のオブジェクトにアクセスする方法を疑問に思います。

おかげ

答えて

1

あなたがコンテンツにアクセスするためにインデックスを配置する必要がありますので、あなたのオブジェクト内のデータ・フィールドが配列である、すなわち

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

感謝。私は今、 "画像"配列に到達することができます。しかし、 "original.url"フィールドを取得しようとすると "undefined"エラーが発生します。ここにコードがあります: 'data = JSON.parse(body) console.log data [0] .images [0] .original [0] .url' –

+0

今、私は誤字がありました。あなたの助けに感謝 –

関連する問題