将json写入本地文件系统

时间:2014-02-14 11:26:07

标签: json mongodb

在Mongodb中我有一个测试集合,其中包含一个json文档。我能够检索json并将其记录到我的IDE控制台。现在我想将这个json存储到我的本地文件系统上的文件(即test.json)中。我试图创建这样的代码,但它不起作用。第4行存在一些问题,因为文件无法写入光标。

如何从mongodb获取对象到文件系统,是否有任何示例代码与我共享。

DBCursor cursor = collection.find();

FileWriter file = new FileWriter("D:\\test1.json");
while( cursor.hasNext() ) {
    file.write(cursor.toJSONString(); // this is line 4 
}
file.close();

System.out.println("JSON created successfully");

2 个答案:

答案 0 :(得分:0)

缺少(在new之后和write之前):

file.open(); 

答案 1 :(得分:0)

试试这个

import java.io.File;
import java.io.FileWriter;
import java.net.UnknownHostException;

import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;



public class App {
    public static void main(String[] args) throws Exception{

        try {

            Mongo mongo = new Mongo("localhost", 27017);
            DB db = mongo.getDB("test");
            DBCollection collection = db.getCollection("dummyColl");

            // convert JSON to DBObject directly
            DBObject dbObject = (DBObject) JSON
                    .parse("{'name':'mkyong', 'age':30}");

            collection.insert(dbObject);

            DBCursor cursorDoc = collection.find();
            while (cursorDoc.hasNext()) {
                System.out.println(cursorDoc.next());
            }

            String st=JSON.serialize(cursorDoc);
            File file=new File("test.json");
            FileWriter fileWriter=new FileWriter(file);
            fileWriter.write(st);
            fileWriter.close();

            System.out.println("Done");

        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (MongoException e) {
            e.printStackTrace();
        }
    }
}