将数据导入mongodb时出现JSONParseException

时间:2015-09-24 09:13:40

标签: java json mongodb parsing exception

我尝试使用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();
    }

}

}

2 个答案:

答案 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快速导入数据。