Java的BSON库是什么?

15
5个回答

7
您可以使用Java的MongoDB驱动程序存储BSON对象,然后将其转换为String,然后您可以使用JSONObject进行包装。

例如,这是我创建常规文档的方式:

BasicDBObject obj = new BasicDBObject();
obj.put("name", "Matt");
obj.put("date", new Date());

然后,要获取对象的 String 表示,只需调用:

String bsonString = obj.toString();

使用JSONObject对其进行包装,并获取日期属性,应该以符合BSON规范的格式返回。

JSONObject newObject = new JSONObject(bsonString);
System.out.println(newObject.get("date"));

生成的输出类似于:
{"$date":"2012-08-10T05:22:53.872Z"}

2

3
我可以从Mongo中提取编码部分并制作成一个外部库。但我希望有更“成熟”的选择,感谢你的建议。 - Maxim Veksler
3
说实话,mongoDB的示例有点愚蠢!为什么它不能像json转换那样简单? - nightograph
7
答案中的链接已经失效。 - seinecle

1
还有一个相对较新的BSON4Jackson项目,它允许使用Jackson来处理BSON数据。这意味着可以进行完整的数据绑定(到/从POJOs),树模型,甚至流式(增量)读写,以达到可以使用BSON格式的程度。

我讨厌Jackson。它的API让人感觉“过于复杂”。Crockford的库是最好的,也是最小的。 - Ian Macalinao
4
你有权持有你那不太明智的观点。像 org.json 这样的玩具库参考实现可能适合你。 - StaxMan

1
为了将我们的模型存储到MongoDB中,我们首先使用Google Gson将模型转换为JSON格式,然后使用MongoDB的JSON util parse方法将生成的JSON字符串解析为DBObject,最终可以将其放入MongoDB中。就性能而言,我并不是很清楚。

这种方法的问题在于你将会失去一些数据类型(例如日期)。 - Enrichman

1

还有 ebson。我还没有尝试过它...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接