JSON解析器-写入文本文件-线程异常;“主要”;java.lang.NullPointerException

JSON解析器-写入文本文件-线程异常;“主要”;java.lang.NullPointerException,java,json,Java,Json,我正在尝试将已解析为ArrayList字符串的列表JSON写入txt文件。 然而,我不断地得到这个错误: 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.ja

我正在尝试将已解析为ArrayList字符串的列表JSON写入txt文件。 然而,我不断地得到这个错误:

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)
我认为错误在字符串rawTweet=in.nextLine()中 然而,我似乎无法理解这一点。 JSON数据本身对此有影响吗?我的意思是因为我错误地解析了数据?还是因为另一个原因


任何帮助都将不胜感激

问题似乎在于您没有处理异常,因此,如果
新扫描仪(json)
行失败,则
中的
引用将为空。在这种情况下,您将在
while(In.hasNextLine())
行中失败


但是,如果代码中没有行号,则很难准确判断这是否真的是问题所在。

如果确定问题在.nextLine()中(请调试代码以确定问题在哪里) 然后试试这个:

 Iterator<JSONObject> iterator = yourJsonObject.iterator();
 while (iterator.hasNext()) {
 JSONObject factObj = (JSONObject) iterator.next();
 ...

 }
Iterator Iterator=yourJsonObject.Iterator();
while(iterator.hasNext()){
JSONObject factObj=(JSONObject)迭代器.next();
...
}

永远不要捕获异常并默默地忽略它。我在方法中添加了“抛出IOException”,但它仍然不起作用。。我还为上面的错误行添加了行号,为了将异常抛出到控制台,您还需要提取
in=newscanner(json)超出try…catch子句。
    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);
                }
            }
        }
 Iterator<JSONObject> iterator = yourJsonObject.iterator();
 while (iterator.hasNext()) {
 JSONObject factObj = (JSONObject) iterator.next();
 ...

 }