Twitter4j获取推文的JSON格式

时间:2017-03-19 13:41:04

标签: java json twitter4j

我正在检索推文并将其存储在文本文件中。而不是以纯文本字符串格式检索推文,如何检索状态对象的JSON格式的推文。因为我将在检索完成后上传到Oracle数据库,这将需要将JSON的格式更改为.csv文件。用纯文本是不可能的。 我的代码低于任何帮助将不胜感激。

p public static void main(String[] args) {
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
        .setOAuthConsumerKey("")
        .setOAuthConsumerSecret("")
        .setOAuthAccessToken("")
        .setOAuthAccessTokenSecret("");

    StatusListener listener = new StatusListener(){

        public void onStatus(Status status) { 
            long iD = status.getId(); 
            String username = status.getUser().getScreenName(); 
            String tweetText = status.getText(); 
            Date createdAt = status.getCreatedAt();  
            System.out.println(iD+" "+username+" "+tweetText+" "+createdAt);
            String text = iD+" "+username+""+tweetText+" "+createdAt; 
            try {

                PrintWriter pw = new PrintWriter(new FileWriter("TwitterTweetData.txt", true));
                pw.println(text);
                pw.close();
              } catch ( IOException e ) {
                 e.printStackTrace();
              }

        }

        public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {}

        public void onTrackLimitationNotice(int numberOfLimitedStatuses) {}

        public void onException(Exception ex) {
            ex.printStackTrace();
        }
        public void onScrubGeo(long arg0, long arg1) {}

        public void onStallWarning(StallWarning arg0) {}            
    };

    TwitterStreamFactory tf = new TwitterStreamFactory(cb.build());
    TwitterStream twitterStream = tf.getInstance();
    twitterStream.addListener(listener);

    FilterQuery filtre = new FilterQuery();
    String[] keywordsArray = {"#Hello"}; // Removed Hashtags I'll be using 
    filtre.track(keywordsArray);
    twitterStream.filter(filtre);  
}

}

2 个答案:

答案 0 :(得分:1)

这里写的是状态..:

  PrintWriter pw = new PrintWriter(new FileWriter("TwitterTweetData.txt", true));
  pw.println(status);
  pw.close();

您的意思是将pw.println(status);替换为

 pw.println(DataObjectFactory.getRawJSON(status));

答案 1 :(得分:0)

'phiX'的上述答案将为您提供整个推文作为Json。如果您只想要推文的某些特定部分作为json,请检查this。下载项目,根据需要修改com.tweetDownload.dataformat.Tweet和com.tweetDownload.service.CustomStatusListener文件。

library基本上做的是它下载基于搜索词的推文,包括主题标签和提及,以及twitter识别的语言,根据数据格式类解析相关信息,将该信息转换为Json格式并将其存储在本地文件系统中。所有这些应用程序参数,包括Twitter OAuth信用,都是从项目属性文件中读取的。