在開發(fā)中,經(jīng)常需要將json格式的數(shù)據(jù)轉(zhuǎn)換為bson格式,而Java語(yǔ)言中則可以用bson-util庫(kù)來進(jìn)行轉(zhuǎn)換。下面介紹如何使用該庫(kù)實(shí)現(xiàn)轉(zhuǎn)換過程。
首先需要在pom.xml中加入以下依賴:
<dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> <version>3.6.3</version> </dependency>
接下來,可以定義一個(gè)JsonUtils工具類,其中包含toJson方法和toBson方法:
import org.bson.Document; import org.json.JSONObject; public class JsonUtils { public static JSONObject toJson(Document doc) { JSONObject json = new JSONObject(doc.toJson()); return json; } public static Document toBson(JSONObject json) { Document doc = Document.parse(json.toString()); return doc; } }
其中,toJson方法接收一個(gè)Document類型的參數(shù),將其轉(zhuǎn)換為JSONObject類型,而toBson方法接收一個(gè)JSONObject類型的參數(shù),將其轉(zhuǎn)換為Document類型。在代碼中使用示例如下:
//將json轉(zhuǎn)換為bson String jsonString = "{\"name\":\"Jack\", \"age\":20}"; JSONObject json = new JSONObject(jsonString); Document doc = JsonUtils.toBson(json); System.out.println(doc.toJson()); //將bson轉(zhuǎn)換為json Document bson = new Document("name", "Jack").append("age", 20); JSONObject json2 = JsonUtils.toJson(bson); System.out.println(json2.toString());
以上代碼將輸出以下結(jié)果:
{"name": "Jack", "age": 20} {"name":"Jack","age":20}
可以看到,經(jīng)過JsonUtils工具類的處理,json與bson之間的轉(zhuǎn)換已經(jīng)成功完成。