使用FastJson解析库的那些事儿

义以为之,
礼以行之,
逊以出之,
信以诚之,为做事之顺道。
多少好事,因礼不周,言不逊,信不孚,致生障碍者,比比皆是。


FastJson库的Github地址

fastjson是阿里巴巴推出的开源JSON解析库,即:解析JSON格式的字符串

  1. Java Bean 序列化为JSON字符串;
  2. JSON字符串反序列化为Java Bean;

下面来主要来谈一下使用FastJson库所遇到的问题:

问题1. 序列化Or反序列化的问题

1.1 问题描述:

在开发中,为了方便往往在生成Java Bean时,采用内部类的形式(具体看下面代码块)。接下来就是常规操作:

  1. 序列化:JSON.parseObject(json,Bean.class)
  2. 反序列化:JSON.toJSONString(bean)
public class Car{
	public Engine engine;

	public class Engine{
		public Component component;
		
			public class Component{
				
			}
	}
}

就是这么简单的功能,居然出错了,我承认我太天真啦。
补充一点,出错的现象各异(同样是上述的问题):

  1. 网友遇到的大部分是解析异常
  2. 我遇到的居然是StackOverFlow…(可能是fastjson的版本问题)
1.2 解决方案:
  1. 内部类添加static关键字即可;
  2. 不嫌麻烦的话,避免内部类即可(都单独生成一个Bean);

更具体的内容可以参考 fastjson的解析的问题

原因也很实在(But我很不爽):

内部非静态类无法实例化

问题2. 使用小心+小心

少个get/set方法行不行,不好意思啊

FastJson稍微使用不当就会导致StackOverflow

In a word, 不推荐使用FastJson。『一快遮百丑』.安全漏洞层出不穷…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章