私はtwitter APIを使っていますが、私は本当に混乱している問題に取り組んでいます。Javascript配列は配列としてアクセスできません
私は次のスクリプトがありますさえずりと対話するために次の関数を呼び出している
const Twitter = require('twitter-api-stream')
const twitterCredentials = require('./credentials').twitter
const twitterApi = new Twitter(twitterCredentials.consumerKey, twitterCredentials.consumerSecret, function(){
console.log(arguments)
})
twitterApi.getUsersTweets('everycolorbot', 1, twitterCredentials.accessToken, twitterCredentials.accessTokenSecret, (error, result) => {
if (error) {
console.error(error)
}
if (result) {
console.log(result) // outputs an array of json objects
console.log(result.length) //outputs 3506 for some reason (it's only an array of 1)
console.log(result[0]) // outputs a opening bracket ('[')
console.log(result[0].text) // outputs undefined
}
})
:
TwitterApi.prototype.getUsersTweets = function (screenName, statusCount, userAccessToken, userRefreshToken,cb) {
var count = statusCount || 10;
var screenName = screenName || "";
_oauth.get(
"https://api.twitter.com/1.1/statuses/user_timeline.json?count=" + count + "&screen_name=" + screenName
, userAccessToken
, userRefreshToken
, cb
);
};
をそれは私は私が望む結果を得ているよう思えます。素晴らしいです
[
{
"created_at": "Thu Sep 01 13:31:23 +0000 2016",
"id": 771339671632838656,
"id_str": "771339671632838656",
"text": "0xe07732",
"truncated": false,
...
}
]
、1人のつぶやきに限定ツイートの配列:私は結果自体がログインすると、私は次の出力を取得します。
私がこの問題を抱えているのは、この配列にアクセスしようとするときです。
console.log(result.length) //outputs 3506 for some reason (it's only an array of 1)
console.log(result[0]) // outputs a opening bracket ('[')
console.log(result[0].text) // outputs undefined
私はapi docs for the user_timelineてリードバックが、私はそれを完全に欠けている場合を除き、私は特別な出力の一切の言及を見ていませんよ。
アイデア?
更新
その回答を指摘してくれてありがとう@nicematt。
ちょうどソリューションについて詳しく説明するために、私はこれに私のコードを更新し、今私は私が望む結果取得しています:助けを
if (result) {
let tweet = JSON.parse(result)[0] // parses the json and returns the first index
console.log(tweet.text) // outputs '0xe07732'
}
感謝を!
'' 'JSON.parse(結果)' '' – rottenoats
を 'result'は多分JSON文字列の文字列、であると思われます? – Teemu
これはおそらく長さが3506を返す理由です。 – GuyT