首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON解析器-写入文本文件-线程"main“java.lang.NullPointerException中的异常

JSON解析器-写入文本文件-线程"main“java.lang.NullPointerException中的异常
EN

Stack Overflow用户
提问于 2014-03-26 06:21:18
回答 2查看 273关注 0票数 0

我正在尝试将解析为ArrayList字符串的列表JSON写到一个txt文件中。然而,我一直收到这样的错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.NullPointerException
    at kr.ac.uos.datamining.JSONParser.parseForTweets(JSONParser.java:47)
    at kr.ac.uos.datamining.JSONParser.<init>(JSONParser.java:25)
    at kr.ac.uos.datamining.test.main(test.java:21)

这是主要的类代码test.java:

代码语言:javascript
复制
    package kr.ac.uos.datamining;

    import java.io.File; 
    import java.io.FileWriter;
    import java.io.FileNotFoundException; 
    import java.util.ArrayList;
    import java.util.List;
    import kr.ac.uos.datamining.JSONParser; 
    import kr.ac.uos.datamining.Tweet; 
    import kr.ac.uos.datamining.User;

    public class test {

    public static List <String> list = new ArrayList<String>();

    public static void main(String[] args) throws IOException, FileNotFoundException, InterruptedException, SQLException {
   **Line 21**
        JSONParser j = new JSONParser(new File("D:/usr/samsunggalaxy.txt"));
        ArrayList<Tweet> tweets = j.getTweets();

        for(Tweet tweet : tweets){
            User user = tweet.getUser();
            list.add(tweet.getText() + " | " + user.getScreenName());
        }

        FileWriter writer = new FileWriter("samsunggalaxy.txt");
        for(String str: list) {
            writer.write(str);
        }
        writer.close();
        }
    }

这是JSON Parser行,错误跟踪显示:

代码语言:javascript
复制
    private void parseForTweets(){
            Scanner in = null;
            try {
                in = new Scanner(json);
            } catch (FileNotFoundException e) {

            }

**Line47**          while(in.hasNextLine()){
                String rawTweet = in.nextLine();

                if(!rawTweet.contains("\"retweeted\":true")){
                    Tweet tweet = TweetParser.parseTweet(rawTweet);
                    tweets.add(tweet);
                }
            }
        }

我认为错误出现在字符串rawTweet =in.nextLine();然而,似乎无法理解这一点。JSON数据本身对此有影响吗?我是说是因为我把数据分析错了吗?还是因为另一个原因?

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-26 06:28:03

问题似乎在于您没有处理异常,因此,如果new Scanner(json)行失败,则in引用将为null。在这种情况下,您将在while(in.hasNextLine())行中失败。

但是,没有代码中的行号,很难准确地判断这是否是真正的问题。

票数 1
EN

Stack Overflow用户

发布于 2014-03-26 06:28:11

如果您确定问题是in.nextLine() (请调试您的代码以确定问题在哪里),那么尝试以下一个:

代码语言:javascript
复制
 Iterator<JSONObject> iterator = yourJsonObject.iterator();
 while (iterator.hasNext()) {
 JSONObject factObj = (JSONObject) iterator.next();
 ...

 }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22653016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档