我尝试使用Java驱动程序将json文件导入Mongodb,但是我遇到了这个异常
线程中的异常" main" com.mongodb.util.JSONParseException: 在com.mongodb.util.JSONParser.read(JSON.java:301) 在com.mongodb.util.JSONParser.parseString(JSON.java:455) 在com.mongodb.util.JSONParser.parse(JSON.java:204) 在com.mongodb.util.JSONParser.parseObject(JSON.java:263) 在com.mongodb.util.JSONParser.parse(JSON.java:227) 在com.mongodb.util.JSONParser.parse(JSON.java:155) 在com.mongodb.util.JSON.parse(JSON.java:92) 在com.mongodb.util.JSON.parse(JSON.java:73)
在大约200000个文档中,只有大约4000个文档被导入数据库。任何人都可以告诉我应该如何解决这个问题?任何帮助将不胜感激。
以下是我写的代码:
class ClickApp {
public static void main(String[] args) {
ClickApp cl = new ClickApp();
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("db");
DBCollection collection = db.getCollection("col");
cl.JsonfiletoMongodb("/home/jsonfile/ClickApp.json", db, collection);
}
public void JsonfiletoMongodb(String pathToFile, DB db, DBCollection coll) {
// open file
FileInputStream fstream = null;
try {
fstream = new FileInputStream(pathToFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("File not found");
return;
}
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String str;
try {
while ((str = br.readLine()) != null) {
DBObject dbObject;
dbObject = (DBObject) JSON.parse(strLine);
try {
coll.insert(dbObject);
}
catch(MongoException e) {
e.printStackTrace();
}
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
请你试试这个命令。 Syntax reference from MongoDb site
.\mongoimport.exe --db test --collection restaurants --drop --file ..\data\primer-dataset.json
答案 1 :(得分:0)
您可以做的另一件事就是将json内容粘贴到http://jsonlint.com/中,您可以确定json内容中是否存在任何问题。
然后,如果json内容没有问题,请使用mongoimport.exe快速导入数据。