Json转Bson

MongoDB中是以Bson数据格式进行存储的,Json字符串没有办法直接写入MongoDB 可以将Json字符串转换成DBObject或者Document,然后写入MongoDB

1、将Json字符转换成com.mongodb.DBObject(准确的说是BasicDBObject)

scala版本

import com.mongodb.DBObject
import com.mongodb.casbah.{MongoClient, MongoCollection}
import com.mongodb.util.JSON // 构造一个Json字符串
val json = s"""{
| "school_code" : "${school_code}",
| "school_name" : "${school_name}",
| "teacher_idcard" : "${teacher_idcard}",
| "teacher_name" : "${teacher_name}"
|}
|""".stripMargin val collection: MongoCollection = MongoClient("10.4.120.83")("dbName")("collectionName") val bson: DBObject = JSON.parse(json).asInstanceOf[DBObject] collection.insert(bson) // mongodb casbah的写法

java版本

import com.mongodb.MongoClient;
import com.mongodb.DBObject;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.util.JSON; // 构造一个Json字符串
String json = " {" +
" 'school_code' : '111111', " +
" 'school_name' : '汉东政法大学', " +
" 'teacher_idcard' : '0000001', " +
" 'teacher_name' : '高育良' " +
" } "; MongoClient mongoClient = new MongoClient("10.4.120.83", ); MongoDatabase database = mongoClient.getDatabase("dbName"); MongoCollection<DBObject> collection = database.getCollection("collectionName", DBObject.class); DBObject bson = (DBObject)JSON.parse(json); collection.insertOne(bson);

2、将字符串转换成org.bson.Document

scala版本

import org.bson.Document
import com.mongodb.casbah.{MongoClient, MongoCollection}
import com.mongodb.util.JSON; // 构造一个Json字符串
val json = s"""{
| "school_code" : "${school_code}",
| "school_name" : "${school_name}",
| "teacher_idcard" : "${teacher_idcard}",
| "teacher_name" : "${teacher_name}"
|}
|""".stripMargin val document:Document = Document.parse(json) // 注意!com.mongodb.casbah.MongoCollection只支持写DBObject的子类,
// 不支持写入Document类的对象,可以使用com.mongodb.client.MongoCollection
// 写入Document类的对象,这里能写入是因为用了自定义的隐式转换函数,将
// Document转换成了DBObject // 自定义的隐式转换函数
implicit def document2DBObject(doc: Document): DBObject = JSON.parse(doc.toJson).asInstanceOf[DBObject] val collection: MongoCollection = MongoClient("10.4.120.83")("dbName")("collectionName") collection.insert(document)

Java版本

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase; // 构造一个Json字符串
String json = " {" +
" 'school_code' : '111111', " +
" 'school_name' : '汉东政法大学', " +
" 'teacher_idcard' : '0000001', " +
" 'teacher_name' : '高育良' " +
" } "; MongoClient mongoClient = new MongoClient("10.4.120.83", ); MongoDatabase database = mongoClient.getDatabase("dbName"); MongoCollection<Document> collection = database.getCollection("collectionName"); Document document = Document.parse(json); collection.insertOne(document );

最新文章

  1. if..elif语句
  2. Jsoup Element网页信息采集
  3. iOS获取当前app的名称和版本号
  4. NavMesh名字、层索引、层值之间的转换
  5. windows API 开发飞机订票系统 图形化界面 (一)
  6. jQuery DOM基础
  7. Delphi调用webservice总结
  8. Javascript关闭详细说明
  9. CentOS 6.3 安装 samba 共享(转)
  10. div显示和隐藏
  11. Myeclipse 10 for mac 破解版下载安装及破解方法
  12. 组件之间使用Prop传递数据
  13. 无法远程连接服务器上的mysql
  14. AI 学习新的开始
  15. weblogic AND jboss 反序列化漏洞
  16. DB Query Analyzer 6.02 is released, 71 articles concerned have been published
  17. 【原创】Windows平台下Git的安装与配置
  18. 消息队列——ActiceMQ
  19. 阿里云轻量级服务器上JDK及tomcat部署配置
  20. svn初涉及使用

热门文章

  1. Unity3d通用工具类之解压缩文件
  2. android非法字符的判定、表情符号的判定
  3. $(&quot;#XXX&quot;).click()和$(&quot;#YYY&quot;).on(&quot;click&quot;,&quot;指定的元素&quot;,function(){});的区别(jQuery动态绑定事件)
  4. easyui 消息提示框
  5. osx的10款文本编辑器
  6. Weblogic常见故障之二:XAER_NOTA XAException问题的解决
  7. Android LayoutInflater布局填充器
  8. vue项目配置使用flow类型检查
  9. CCPlatformConfig(设置执行平台 iOS android win32等。。。)
  10. css position: relative | absolute | static | fixed详解