首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSON解析为MONGODB文档

将JSON解析为MONGODB文档
EN

Stack Overflow用户
提问于 2015-05-28 13:53:30
回答 3查看 19.4K关注 0票数 6

我是JAVAMONGODB的新手,我一直在学习尝试和理解这些技术是否能满足我对产品的需求。

我现在遇到的问题是无法将JAVA中的文档(记录)插入到我的MONGODB集合中。

我正在使用新的MONGODB version 3.0

到目前为止的代码

代码语言:javascript
复制
MongoCollection<Document> coll = db.getCollection("Collection");
String json = "{'class':'Class10', 'student':{'name':'Alpha', 'sex':'Female'}, {'name':'Bravo', 'sex':'Male'}}";

我找到了将其转换为DBObject类型的代码。

代码语言:javascript
复制
DBObject dbObject = (DBObject)JSON.parse(json);

但我猜新版本的MONGODB没有insert方法,而是有insertOne method

coll.insertOne()要求输入为文档格式,不接受DBObject格式。

代码语言:javascript
复制
coll.insertOne((Document) dbObject);

给出了错误

代码语言:javascript
复制
com.mongodb.BasicDBObject cannot be cast to org.bson.Document

是否有人可以帮助我进行正确的类型转换,并给我一个链接,在那里我可以找到并学习相同的类型?

致以问候。

EN

回答 3

Stack Overflow用户

发布于 2015-06-11 22:58:04

使用Document类中定义的静态parse(String json)方法。

票数 9
EN

Stack Overflow用户

发布于 2015-09-27 17:14:04

  • 问题是您使用的是与3.0版不兼容的旧版本(BasicDBObject)。
  • 但是有一种方法可以让2.0用户使用BasicDBObject.An重载getCollection方法允许客户端指定不同的类来表示BSON文档。

下面的代码必须为您工作。

代码语言:javascript
复制
MongoCollection<BasicDBObject> coll = db.getCollection("Collection", BasicDBObject.class);

coll.insertOne(dbObject);
票数 7
EN

Stack Overflow用户

发布于 2017-03-10 14:58:23

我使用google gson将pojo转换为json,这是完美的工作。

代码语言:javascript
复制
private final MongoCollection<Document> collection;

//my save
    String json = gson.toJson(data);//data is User DTO, just pojo!
    BasicDBObject document = (BasicDBObject) JSON.parse(json);
    collection.insertOne(new Document(document));

Java mongodb驱动程序版本为3.4.2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30498240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档