我的目標是在Android上反序列化BSON數組文件。當外部數組是匿名時,反序列化失敗(嘗試反序列化爲CustomObject[].class
)。當數組使用包含該數組的鍵的對象封裝時(反串行化爲WrapperObject.class
)。在Java中將BSON對象反序列化爲根對象?
在JSON對象看起來像這樣:
[{"id":....},{"id":....},{"id":....}....]
按照BSON Specification所述BSON陣列是具有用於鍵整數值的定期BSON文檔。換句話說在BSON同一物體看起來是這樣的:
{"0":{"id":....},"1":{"id":....},"2":{"id":....}....}
我試圖deserialise的使用bson4jackson以上時,它拋出一個「的X無法反序列化實例出來START_OBJECT令牌的」錯誤和在堆棧跟蹤中,我注意到意外的令牌是「」 - 數組開頭的BSON表示。
我的解決方案,現在,是包裝在一個新的根對象的陣列,在JSON,應該是這樣的:
{"data":[{"id":....},{"id":....},{"id":....},....]}
你可以設置bson4jackson,或任何其他deserialisation庫Java,將根對象視爲數組並按原樣處理,而不進行包裝?