redis存储自定义对象

方式一:

     TaskInfo t = new TaskInfo();
        t.setDispatchNumber("DIS123456");
        t.setSerialNumber("RS787878");
        t.setTaskState(Constants.TASK_STATE_WAIT);
        
        String key = "test-dispatch";
        
        //-----------ali
        String v_ali =  JSON.toJSONString(t);
        redis.set(key, v_ali);
        
        TaskInfo task_ali = JSON.parseObject((String)redis.get(key), TaskInfo.class);
        
        //----------jackson
        String v_jackson = JsonUtils.ObjectToJson(t);
        redis.set(key, v_jackson);
        
        TaskInfo task_jackson = JsonUtils.jsonToObject3(TaskInfo.class, (String)redis.get(key));
        
        
        if(task_ali.getTaskState() == Constants.TASK_STATE_WAIT) {
            
            System.out.println(task_ali.getDispatchNumber());
            System.out.println(task_ali.getSerialNumber());
        }

JsonUtils

  /**
     * 将对象转为json字符串
     * @param o
     * @return
     */
    public static String ObjectToJson(Object o){
        ObjectMapper mapper = new ObjectMapper();
        try {
            return mapper.writeValueAsString(o).replaceAll("\r\n|\r|\n", "");
        } catch (JsonProcessingException e) {
            logger.error("JsonProcessingException", e);
        }
        return null;
    }

  /**
     * json转对象
     * @param clazz
     * @param json
     * @return
     */
    public static <T> T jsonToObject3(Class<T> clazz,String json){
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        try {
            return mapper.readValue(json, clazz);
        } catch (JsonParseException e) {
            logger.error("JsonParseException", e);
        } catch (JsonMappingException e) {
            logger.error("JsonMappingException", e);
        } catch (IOException e) {
            logger.error("IOException", e);
        }
        return null;
    }

猜你喜欢

转载自www.cnblogs.com/anenyang/p/12390241.html
今日推荐