mongodb java json bson_使用Java将JSON文档数组插入MongoDB时出错
时间: 2023-12-16 20:06:22 浏览: 25
在使用Java将JSON文档数组插入MongoDB时,你需要使用BSON工具将JSON转换为BSON格式。以下是一个示例代码,可以将JSON数组插入到MongoDB中:
```
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.bson.types.ObjectId;
import java.util.ArrayList;
import java.util.List;
public class MongoDBTest {
public static void main(String[] args) {
// 创建MongoDB连接
MongoClient client = new MongoClient("localhost", 27017);
// 获取MongoDB数据库
MongoDatabase database = client.getDatabase("test");
// 获取MongoDB集合
MongoCollection<Document> collection = database.getCollection("users");
// 创建JSON数组
String json = "[{ \"name\" : \"Tom\", \"age\" : 20 },{ \"name\" : \"Jerry\", \"age\" : 25 }]";
// 将JSON数组转换为BSON文档列表
List<Document> documents = new ArrayList<>();
JsonParser parser = new JsonParser();
JsonArray jsonArray = parser.parse(json).getAsJsonArray();
for (JsonElement jsonElement : jsonArray) {
Document document = Document.parse(jsonElement.toString());
documents.add(document);
}
// 插入BSON文档列表到MongoDB集合
collection.insertMany(documents);
// 关闭MongoDB连接
client.close();
}
}
```
在这个示例中,我们使用了JsonParser将JSON字符串转换为JsonArray,然后遍历JsonArray,将每个元素转换为BSON文档,并将文档添加到BSON文档列表中。最后,我们使用insertMany方法将BSON文档列表插入到MongoDB集合中。注意,在使用BSON工具时,需要注意BSON格式与JSON格式的差异。