最近偶然间看到了以前写过的代码,发现了以前用的非常频繁的json解析框架fastjson。这个框架的确非常方便,帮助开发者省了很多的人工代码。以前那是因为没有时间写学习其中的原理,周末抽了点时间分析了下他的源码,可以作为不错的json解析框架的资料。主要分为2个步骤,1个是对象转json字符串,还有1个是json字符转对象的处理。
fastjson介绍
fastjson是阿里巴巴内部的json解析框架,目前代码已经开源在alibaba的github上了,等会想要研究的fastjson的同学可以上github进行源码下载。链接为https://github.com/alibaba/fastjson.git,上面一堆的开源项目,一找就找到了。fastjson是用java语言写的,可以放在eclipse上进行源码的阅读。
搭建fastjson源码阅读环境
这个必须得说一下,这个可不是根据源码文件,逐个文件在代码编辑器中打开再阅读,这样效率太低,下面介绍一下步骤:
1.到github上下载源码,这个很简单,谁都会。
2.将里面的com核心的代码目录解压出来,因为你下载的压缩包很多东西不是你所需要的。
3.将下载好的fastjson代码在eclipse上进行代码关联,如果在没有任何操作之前,阅读代码会出现下面的状况:
关联步骤为:
4.执行完上述操作后,就可以查看源码像查找自己本地的代码一样了。
测试的环境
在运行fastjson的2个功能前,我写了个测试场景类和对象类,首先声明类A:
public class A {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void showInfo(){
System.out.println(this.name + ":" + this.age);
}
}
然后是场景测试类的代码:
/**
* fastjson测试场景类
* @author lyq
*
*/
public class Client {
public static void main(String[] args){
String str;
A a = null;
A a2 = new A();
// B b = null;
// B b2 = new B();
a2.setAge(11);
a2.setName("zs");
str = JSON.toJSONString(a2);
System.out.println(st