???紵 发表于 2015-12-22 14:16:14

java中使用json格式字符串生成mongodb 对象的两种方法

使用java操作mongodb经常需要把DBObject对象转换成json字符串,或反过来到json字符串转换成DBObject对象保存
如果要准确选择一个对象最准确的方法是直接根据期objectid进行查找,以下例子讲述这些用法。

方法一、利用json字符串直接生成mongodb的 DBObject对象
例子中的json字符串是利用DBObject的toString()方法生成的,json的官方要求是使用双引号,如果要严格办事,那么必把json串的的"用转义字符\"替换。





[*] String strJson="{ '_id' : { '$oid' : '52fdbe36e97fee8601000000'}}";

[*]strJson=strJson.replaceAll("\'", "\""); //把单引号替换成双引号,不用这句也可以执行成功。加这句是为了让我记住json应用中存在单双引号问题,在jquery中,如果json是用单引号的话,就会出错,在php中json用单引号也会出错。

[*] DBObject query = (BasicDBObject) JSON.parse(strJson);

方法二、利用Objectid对象生成id后再new出DBObject对象




[*]ObjectId oid = new ObjectId("52fdbe36e97fee8601000000");

[*]DBObject query = new BasicDBObject("_id", oid);
下面给出一段完整的根据Objectid查找出mongodb对象后,以json格式输出相关信息的DEMO函数,该段代码只是demo性质,没有关注逻辑的严密性。




[*]public String testmongodb(){

[*]      String myStr = "";
[*]      try{
[*]            ServerAddress serverAddress=new ServerAddress("127.0.0.1",27017);
[*]
[*]            MongoOptions mongoOptions=new MongoOptions();
[*]            mongoOptions.autoConnectRetry=true;
[*]            Mongo myMongo = new Mongo(serverAddress,mongoOptions);
[*]
[*]            DB mydb = myMongo.getDB("admin");
[*]            char[] pwd="123456".toCharArray();
[*]            boolean blAuth=mydb.authenticate("admin", pwd);
[*]
[*]            mydb=myMongo.getDB("test");
[*]            DBCollection myColl = mydb.getCollection("testColl");
[*]            //ObjectId oid = new ObjectId("52fdbe36e97fee8601000000");
[*]            //DBObject query = new BasicDBObject("_id", oid);
[*]            String strJson="{ '_id' : { '$oid' : '52fdbe36e97fee8601000000'}}";
[*]            DBObject query = (BasicDBObject) JSON.parse(strJson);
[*]
[*]            DBCursor myCur = myColl.find(query);
[*]            while(myCur.hasNext()){
[*]                myStr=myStr+myCur.next().toString();
[*]            }
[*]
[*]      } catch (UnknownHostException e){
[*]            e.printStackTrace();
[*]      }
[*]      return myStr;
[*]    }


  
页: [1]
查看完整版本: java中使用json格式字符串生成mongodb 对象的两种方法