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