首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Redis ByteString转换为BasicDBObject

将Redis ByteString转换为BasicDBObject
EN

Stack Overflow用户
提问于 2015-09-16 14:12:30
回答 2查看 119关注 0票数 2

我需要将序列化的Java对象(从Redis获取)转换为扩展com.mongodb.BasicDBObject的Java模型(mongo-java-driver)。

代码语言:javascript
复制
class Member extends BasicDBObject {
    public Member(DBObject doc) {
        super(doc.toMap());
    }
    public Member(BasicDBObject doc) {
        super(doc);
    }
    ...
}

我从Redis那里得到的是ByteString格式。

总之,我需要将ByteString -> BasicDBObject

EN

回答 2

Stack Overflow用户

发布于 2015-09-16 15:24:34

您应该使用中间模型来持久化您的模型。MongoDB的BasicDBObject是基于LinkedHashMap的,但是很有可能最终得到的内部数据结构是不可序列化的。

DBObjectBSONObject都不会扩展Serializable。我建议您将JSON存储在Redis中。一种快捷方式是在Redis中存储BSON而不是JSON (参见BasicBSONEncoder#encodeBasicBSONDecoder#readObject)。

票数 1
EN

Stack Overflow用户

发布于 2015-09-17 14:54:24

@mp911de你是对的。好消息是DBObject和BSONObject没有扩展Serializable。换句话说,不需要为DBObject/BSONObject编写反序列化程序。我找到了一个解决方案:

来自Redis的ByteString ->字节数组->对象->强制转换为我的类成员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32600992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档