设为首页 收藏本站
查看: 910|回复: 0

[经验分享] java中使用json格式字符串生成mongodb 对象的两种方法

[复制链接]

尚未签到

发表于 2015-12-22 14:16:14 | 显示全部楼层 |阅读模式
使用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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-154846-1-1.html 上篇帖子: MongoDB的安装、启动和停止 下篇帖子: mongoDB 3.0用户创建与授权
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表