我正在尝试设置Voldemort键值存储的配置。现在,我希望能够在其中存储任意的hashmap,但是我还没有找到这样做的方法(或者如果可能的话)。
根据文档,我应该使用以下语法:
{"fname":"string", "lname":"string", "id":"int32", "emails":["string"]}表示我希望存储Java bean的HashMap表示,但对允许的键(只有fname、lname、id和emails)及其类型有约束。
我需要的是能够像这样存储一个任意的地图:
{"name":"fred", "id":15}或者像这样:
{"apples":"50$", "oranges":"15€"}(映射值是没有意义的,只是具有不同键名和值类型的映射的说明)
有没有办法定义一个可以接受任意hashmap的模式?
发布于 2010-12-07 02:48:11
我发现有用的是只使用通用的原始存储(在那里传递byte[] ),并在客户端预序列化东西。这很容易使用(我使用Jackson):
ObjectMapper mapper = new ObjectMapper();
// to store:
byte[] data = mapper.writeValueAsBytes(myMap);
// and when retrieving back:
Map<String,Object> data = mapper.readValue(data, Map.class);虽然Voldemort确实支持它的“类JSON”存储(据我所知,它不是JSON,而是简单的二进制字典),但在我看来,使用它没有太多好处,因为您不能对它进行查询或请求文档的子集。
https://stackoverflow.com/questions/4356854
复制相似问题