如果一个项目有大量的Map和List,那么日志中将大量出现Map和List的相关信息
但是,当出现奇怪的问题时,我们必须要还原现场,那么就需要将日志中的Map,List进行String to Object的转换目前比较流行的Jackson(FasterXML)是针对JOSN转化为java对象,需要将Map.toString, List.toString转化为标准的JOSN才行。我没有找到一个更好的解决办法
暂时通过正则表达式,进行处理。见多识广的CSDN大神们,帮我参谋参谋。现在是否有一个比较现成的工具能解决如上问题?还是鼓励我自己写个方法来嫁接桥梁?还是果断重写HashMap,做一个JOSNMap?
但是,当出现奇怪的问题时,我们必须要还原现场,那么就需要将日志中的Map,List进行String to Object的转换目前比较流行的Jackson(FasterXML)是针对JOSN转化为java对象,需要将Map.toString, List.toString转化为标准的JOSN才行。我没有找到一个更好的解决办法
暂时通过正则表达式,进行处理。见多识广的CSDN大神们,帮我参谋参谋。现在是否有一个比较现成的工具能解决如上问题?还是鼓励我自己写个方法来嫁接桥梁?还是果断重写HashMap,做一个JOSNMap?
解决方案 »
- swing,JPanel中怎么按指定坐标添加多个矩形图
- java 随机数
- 初级问题
- 求教 java(Runtime.getRuntime().exec(""))数据库备分问题??
- 马上想学JSP 要问下JSP 中会用到J2SE哪些特性?我想再着重复习一下
- java 如何操作剪切板?
- thinking in java的疑问???
- MyEclipse出现错误,不能运行java程序,运行出来是由tomcat网页显示出来
- 请问jsplitpane 如何让分割的panel随分割条的移动长宽度自动变化?
- java 的简单问题 9 ???/*148*/
- 求问!!学习java过程中关于输入定长字符串和可扩充数组的问题
- 求大神赐教Java环境变量老是出错是咋回事
如果楼主想要自己实现,就需要遍历你的Map、List,然后一个一个格式化输出你的字符串,其实如果Map或者List的格式固定,只要是格式化的文件都可以,不一定需要转成JSON,只要看着方便就可以。
具体的解释就不说了,给楼主写个例子:
//JsonMap实现
public static class JsonMap<K, V> extends HashMap<K, V> {
private static final long serialVersionUID = -4083915643878380063L; //从Json构造Map
public static <K,V> JsonMap<K, V> fromJson(String json){
@SuppressWarnings("unchecked")
JsonMap<K, V> map = JSON.parseObject(json, JsonMap.class);
return map;
}
//重写toString方法
@Override
public String toString(){
return JSON.toJSONString(this);
}
} //测试
public static void main(String[] args) {
JsonMap<String, String> jmap = new JsonMap<String, String>();
jmap.put("hello", "world");
jmap.put("你好", "世界");
String jmapString = jmap.toString();
System.out.println(jmap); //此处会自动调用toString()
jmap = JsonMap.fromJson(jmapString);
System.out.println(jmap.get("hello"));
}
这样,只需要把程序里需要恢复现场的HashMap改成JsonMap,然后修改恢复逻辑即可。
当然,你也可以将toString于fromJson方法包装到一个工具类中,这个就需要你根据具体的业务环境进行取舍了。