我的用例是將任意POJO轉換爲Map,然後從Map轉換回POJO。所以我最終使用策略POJO - > json - > org.bson.Document並返回到org.bson.Document - > json - > POJO。如何在Java中將POJO轉換爲Map,反之亦然?
我使用GSON到POJO轉換成JSON,
Gson gson = new GsonBuilder().create();
String json = gson.toJson(pojo);
然後
Document doc = Document.parse(json);
創建文檔,很容易。但其他解決方法是有問題的。 document.toJson()
沒有給長的標準json,timestamp等,而gson在對POJO進行反串行化時抱怨。所以我需要一種將org.bson.Document轉換爲標準json的方法。
注意:我想避免使用mongo java驅動程序或morphia,因爲此工作與mongo無關。
「標準json for timestamp」是什麼意思? JSON標準沒有說明時間戳是如何編碼的。 – yole
文檔生成json只要{「$ numberLong」:1245}不能被gson解析。通過標準的json,我想表示json就像{「abc」:1245},它可以被反序列化爲字段名稱abc。 –
定義*標準json *的含義,因爲你所說的大部分內容都不準確。 Timestamp沒有*標準*格式,或任何其他非原始字符串,數字,布爾值或空值的對象的任何其他字符串表示形式。 –