Fastjson的基本使用
- 使用fastjson实现指定对象类型与String类型进行相互转换,在此记录下
场景:
- 在使用redis进行缓存操作时,由于jedis中的
set(String key,String value)
,value值需要是String类型,所以需要将要储存的bean对象转化为String(建立一个beanToString
方法)
/**
*实现将java对象转化为String,
**/
private <T> String beanToString(T value) {
if(value == null) {
return null;
}
Class<?> clazz = value.getClass();
if(clazz == int.class || clazz == Integer.class) {
return ""+value;
}else if(clazz == String.class) {
return (String)value;
}else if(clazz == long.class || clazz == Long.class) {
return ""+value;
}else {
return JSON.toJSONString(value);
}
}
同理,从redis中获取数据后也要将返回的String对象转化为指定的bean对象以供后续操作
/**
*实现将String对象转化为指定的类对象
*/
private <T> T stringToBean(String str, Class<T> clazz) {
if(str == null || str.length() <= 0 || clazz == null) {
return null;
}
if(clazz == int.class || clazz == Integer.class) {
return (T)Integer.valueOf(str);
}else if(clazz == String.class) {
return (T)str;
}else if(clazz == long.class || clazz == Long.class) {
return (T)Long.valueOf(str);
}else {
return JSON.toJavaObject(JSON.parseObject(str), clazz);
}
}
总结:
通过fastjson框架中的JSON.toJSONString
()和JSON.toJavaObject()
的可以很方便的实现String类型和其他指定类型的转换(使用到泛型),使得redis的数据操作非常方便。