我正在编写一个对象的JSON表示到一个Redis实例(通过Jesque),但是我不清楚放置一个JsonNode对象是否是正确的方法。示例/API(例如ObjectMapper的this one )的要点是,如果写入文件,我应该使用它,但我实际上是在寻找一个可以发送到Redis的对象。
下面是我所拥有的,其中JsonNode在下面由对象payload表示。这工作得很好,但很难弄清楚,所以我想我错过了快乐的道路。
final String queueName = "myQueue";
final net.greghaines.jesque.client.Client client = getClient();
final net.greghaines.jesque.Job job = new Job(jobClassName, payload);
client.enqueue(queueName, job);
client.end();当前payload是由生成的JsonNode对象
final ObjectMapper objectMapper = new ObjectMapper();
final Object jsonNode = objectMapper.valueToTree(this);有没有更好的方法?
发布于 2013-12-31 05:44:34
存储对象的JsonNode表示的另一种方法是简单地存储String表示:
new ObjectMapper().writeValueAsString(yourObject);
然后,在检索对象时,如果需要,始终可以将String表示反序列化为JsonNode:
JsonNode actualObj = mapper.readTree(jsonString);
或转换为简单的类型安全实体对象:
YourEntity entity = mapper.readValue(jsonAsString, YourEntity.class);
所有这些都没有在Redis中存储特定于库的信息。
希望这能有所帮助。
发布于 2016-09-21 22:13:07
你可以使用Redisson,它有内置的Redis based scheduler,可以与Json,Kryo,msgpack和许多其他编解码器一起工作。为Redis power提供最简单的api。
https://stackoverflow.com/questions/20847137
复制相似问题