Java 通过TestRing将Redis转换为BasicDBObject

Java 通过TestRing将Redis转换为BasicDBObject,java,mongodb,redis,Java,Mongodb,Redis,我需要将序列化的Java对象(从Redis获取)转换为扩展com.mongodb.BasicDBObject(mongo Java驱动程序)的Java模型 我从Redis得到的是ByteString格式 总之,我需要通过TestRing->BasicDBObject进行转换,您应该使用一个中间模型来持久化您的模型。MongoDB的BasicDBObjects基于LinkedHashMap,但很有可能最终会得到不可Java序列化的内部数据结构 既不是DBObject也不是BSONObjectext

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

我从Redis得到的是ByteString格式


总之,我需要通过TestRing->BasicDBObject进行转换,您应该使用一个中间模型来持久化您的模型。MongoDB的
BasicDBObject
s基于
LinkedHashMap
,但很有可能最终会得到不可Java序列化的内部数据结构


既不是
DBObject
也不是
BSONObject
extend
Serializable
。我建议您在Redis中存储JSON。快捷方式可以是在Redis中存储BSON而不是JSON(请参见
BasicBonnecoder#encode
BasicBonnecoder#readObject
)。

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

通过从Redis->byte array->Object->cast向我的类成员进行测试

class Member extends BasicDBObject {
    public Member(DBObject doc) {
        super(doc.toMap());
    }
    public Member(BasicDBObject doc) {
        super(doc);
    }
    ...
}