义以为之,
礼以行之,
逊以出之,
信以诚之,为做事之顺道。
多少好事,因礼不周,言不逊,信不孚,致生障碍者,比比皆是。
fastjson是阿里巴巴推出的开源JSON解析库,即:解析JSON格式的字符串
- Java Bean 序列化为JSON字符串;
- JSON字符串反序列化为Java Bean;
下面来主要来谈一下使用FastJson库所遇到的问题:
问题1. 序列化Or反序列化的问题
1.1 问题描述:
在开发中,为了方便往往在生成Java Bean时,采用内部类的形式(具体看下面代码块)。接下来就是常规操作:
- 序列化:JSON.parseObject(json,Bean.class)
- 反序列化:JSON.toJSONString(bean)
public class Car{
public Engine engine;
public class Engine{
public Component component;
public class Component{
}
}
}
就是这么简单的功能,居然出错了,我承认我太天真啦。
补充一点,出错的现象各异(同样是上述的问题):
- 网友遇到的大部分是解析异常
- 我遇到的居然是StackOverFlow…(可能是fastjson的版本问题)
1.2 解决方案:
- 给内部类添加static关键字即可;
- 不嫌麻烦的话,避免内部类即可(都单独生成一个Bean);
更具体的内容可以参考 fastjson的解析的问题
原因也很实在(But我很不爽):
内部非静态类无法实例化
问题2. 使用小心+小心
少个get/set方法行不行,不好意思啊
FastJson稍微使用不当就会导致StackOverflow
In a word, 不推荐使用FastJson。『一快遮百丑』.安全漏洞层出不穷…