|
@@ -0,0 +1,74 @@
|
|
|
+package com.zskk.tools;
|
|
|
+
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
+import com.jfinal.plugin.redis.serializer.ISerializer;
|
|
|
+
|
|
|
+public class JsonSerializer implements ISerializer {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public byte[] keyToBytes(String key) {
|
|
|
+ return this.str2Byte(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String keyFromBytes(byte[] bytes) {
|
|
|
+ if(bytes == null || bytes.length == 0){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ return this.byte2Str(bytes);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public byte[] fieldToBytes(Object field) {
|
|
|
+ String json = JSON.toJSONString(field);
|
|
|
+ return this.str2Byte(json);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object fieldFromBytes(byte[] bytes) {
|
|
|
+ if(bytes == null || bytes.length == 0){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ String json = this.byte2Str(bytes);
|
|
|
+ return JSON.parseObject(json);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public byte[] valueToBytes(Object value) {
|
|
|
+ String json = JSON.toJSONString(value, SerializerFeature.WriteClassName);
|
|
|
+ return this.str2Byte(json);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object valueFromBytes(byte[] bytes) {
|
|
|
+ if(bytes == null || bytes.length == 0){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ String json = this.byte2Str(bytes);
|
|
|
+ return JSON.parse(json);
|
|
|
+ }
|
|
|
+
|
|
|
+ private String byte2Str(byte[] bytes){
|
|
|
+ try {
|
|
|
+ return new String(bytes, "UTF-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private byte[] str2Byte(String str){
|
|
|
+ try {
|
|
|
+ return str.getBytes("UTF-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+}
|