java bson json 转换,使用MongoDB驱动程序Java API将BSON转换为JSON

本文介绍了如何使用MongoDB驱动程序Java API将BSON文档转换为与输入类似的原始JSON格式,通过调整JsonWriterSettings的模式来避免MongoDB扩展JSON的输出。
摘要由CSDN通过智能技术生成

I am using MongoDB Driver Java API to convert BSON to JSON.

I have test code like this.

String input = "{ \"timestamp\" : 1486064586641 }";

org.bson.Document doc = org.bson.Document.parse(input);

System.out.println("input = " + input);

System.out.println("output = " + doc.toJson());

The output is:

input = { "timestamp" : 1486064586641 }

output = { "timestamp" : { "$numberLong" : "1486064586641" } }

Is there an easy way to make the output look like the input?

解决方案

BSON Documnet's toJson method supports only output to MongoDB Extended JSON (STRICT or SHELL format). If you want to have regular JSON, you can use com.mongodb.util.JSON class:

String input = "{ \"timestamp\" : 1486064586641 }&

要将JSON文档数组插入MongoDB,可以使用MongoDBJava驱动程序BSON库来实现。 下面是一个简单的示例代码,演示如何将JSON文档数组插入MongoDB。 ```java import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import org.json.JSONArray; import org.json.JSONObject; public class InsertJsonArrayToMongoDB { public static void main(String[] args) { // 创建MongoDB客户端 MongoClient mongoClient = new MongoClient("localhost", 27017); // 获取要使用的数据库 MongoDatabase db = mongoClient.getDatabase("test"); // 获取要使用的集合 MongoCollection<Document> collection = db.getCollection("mycollection"); // 创建JSON文档数组 JSONArray jsonArray = new JSONArray(); JSONObject json1 = new JSONObject(); json1.put("name", "John"); json1.put("age", 30); jsonArray.put(json1); JSONObject json2 = new JSONObject(); json2.put("name", "Mary"); json2.put("age", 25); jsonArray.put(json2); // 将JSON文档数组转换BSON文档数组 Document[] docs = new Document[jsonArray.length()]; for (int i = 0; i < jsonArray.length(); i++) { JSONObject json = jsonArray.getJSONObject(i); Document doc = Document.parse(json.toString()); docs[i] = doc; } // 将BSON文档数组插入MongoDB collection.insertMany(Arrays.asList(docs)); // 关闭MongoDB客户端 mongoClient.close(); } } ``` 需要注意的是,上述代码中将JSON文档数组转换BSON文档数组时,使用了`Document.parse(json.toString())`方法。这是因为MongoDBJava驱动程序不支持直接将JSONObject对象转换BSON文档对象,需要先将JSONObject对象转换JSON字符串,再使用`Document.parse()`方法将JSON字符串转换BSON文档对象。 如果在插入JSON文档数组时出现错误,可以检查JSON文档的格式是否正确,以及转换BSON文档时是否有误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值