Map转换成byte[]可以通过先将Map转换成json,然后再将json转换成byte[],List和byte[]互转思路是一样的。
//将map转换成byte[]
protected byte[] changeMapToByte(Map map) {
byte[] bytes = null;
try {
bytes = JsonSerilizable.serilizableForMap(map).getBytes();
} catch (Exception e) {
baselog.error("map到byte[]转换异常",e);
}
return bytes;
}
//将byte[]转换成map
protected Map changeByteToMap(byte[] bytes) {
Map retmap = null;
try {
if(bytes != null) {
retmap = JsonSerilizable.deserilizableForMapFromFile(new String(bytes), String.class);
}else {
baselog.error("changeByteToMap中bytes为null");
}
} catch (Exception e) {
baselog.error("byte到map转换异常",e);
}
return retmap;
}
JsonSerilizable类代码如下:
package com.jd.goldeneye.stat.common;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.jd.fastjson.JSON;
import com.jd.fastjson.TypeReference;
public class JsonSerilizable {
/* 将链表序列化为字符串存入json文件中 */
public static String serilizableForList(Object objList)
throws IOException {
String listString = JSON.toJSONString(objList, true);// (maps,CityEntity.class);
return listString;
}
/* 将json文件中的内容读取出来,反序列化为链表 */
public static List deserilizableForListFromFile(String listString2,Class clazz)
throws IOException {
List list2 = JSON.parseArray(listString2, clazz);
return list2;
}
/* 将HashMap序列化为字符串存入json文件中 */
public static String serilizableForMap(Object objMap)
throws IOException {
String listString = JSON.toJSONString(objMap, true);// (maps,CityEntity.class);
return listString;
}
/* 将json文件中的内容读取出来,反序列化为HashMap */
public static HashMap deserilizableForMapFromFile(String listString2,Class clazz) throws IOException {
Map map = JSON.parseObject(listString2, new TypeReference>() {});
return (HashMap) map;
}
//使用方法 注意Entity为随机定义,使用时用自己的类名替换下就可以用了
/*String pathName = "src/test/java/com/...../resources/file.json";
List entityList = new ArrayList();
JsonSerilizable.serilizableForList(entityList, pathName);
List entityList2 = JsonSerilizable
.deserilizableForListFromFile(pathName, Entity.class);
HashMap Map = new HashMap();
JsonSerilizable.serilizableForMap(Map, pathName);
HashMap Map2 = JsonSerilizable
.deserilizableForMapFromFile(pathName, Entity.class);*/
}
测试例子:
//将map转换成byte[]
protected byte[] changeMapToByte(Map map) {
byte[] bytes = null;
try {
bytes = JsonSerilizable.serilizableForMap(map).getBytes();
} catch (Exception e) {
baselog.error("map到byte[]转换异常",e);
}
return bytes;
}
//将byte[]转换成map
protected Map changeByteToMap(byte[] bytes) {
Map retmap = null;
try {
if(bytes != null) {
retmap = JsonSerilizable.deserilizableForMapFromFile(new String(bytes), String.class);
}else {
baselog.error("changeByteToMap中bytes为null");
}
} catch (Exception e) {
baselog.error("byte到map转换异常",e);
}
return retmap;
}