mongodb java json bson_使用Java将JSON文档数组插入MongoDB时出错
时间: 2024-03-12 08:45:20 浏览: 220
要将JSON文档数组插入MongoDB,可以使用MongoDB的Java驱动程序和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())`方法。这是因为MongoDB的Java驱动程序不支持直接将JSONObject对象转换为BSON文档对象,需要先将JSONObject对象转换为JSON字符串,再使用`Document.parse()`方法将JSON字符串转换为BSON文档对象。
如果在插入JSON文档数组时出现错误,可以检查JSON文档的格式是否正确,以及转换为BSON文档时是否有误。
阅读全文