近几天做了一个项目,需要解析大量的json数据,有一万多条,以前我用的都是Gson包去自动解析,但是速度真是不敢恭维,于是我又去查了其它的方法,发现fastjson的解析,发现速度直的是很快,在此我不得不佩服,这个包的作者,直是很厉害,能写出这样一个工具,我在网上看了,这个工具还有很多问题,但也可以理解,“人无完人嘛”,何况是工具呢?,所以自己研究了一下这个工具,在此分享给大家 ,希望有所帮助。
对于这个包的功能不差于google提供的Gson包,它也支持很多,比如 时间格式 ,泛型,注解,集合解析等等。
我下载的包1.1.6,我测试了一下,还算可以,大家 可以 尝试一下,下面我简要说一下两种使用方法,一个是注解,一个没有注解。
**1、如何使用注解**
首先我们要定义自己的一个类,举个例子,
这是个简单的json`{"name":"ljw",age:18}`
```java
//这是一个Person类
public class Person{
@JSONField(name = "Name")
private String name;
@JSONField(name = "Age")
private int age;
//对于这个无参构造,在此是一个要有的,如果不想用无参构
造,大家可以尝试这个注解@JSONCreater,它可以顶替这个无参 构造函数
public Person(){}
//这里的set方法我们一定要有否会报错
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
```
下面我们就可心用这个类去解析了,
```java
Person person = JSON.parseObject("json",Person.class);
```
这个我们就可以解析成一个类了,同样们们也也可以解析一个List集合,方法和google提供 的GSon包差不多一们,只不过是注解的方式 不同。如果我们想把一个javabean解析成一个json格式的字符串,也很简单,比如
```java
String jsonString = JSON.toJSONString(javabean).
```
这样就ok 了。
**2、不用注解解析的方式**
这个方法只要把上面的方法的注解去除就可以了,默解析的字段名子是类的属性兔名字,比如“name” "age".
其实我们大可不必用注解去解析,个人感觉不太方法,但这只是我个从的意见,因为在大多时候我们需要从服务器上获取数据,这个的json是不受我们自己控制的, 服务给的字段可能是首字母大写,如果我们不用注解就需要让我们类的属性名字首字母也大写,但这不符合java的设计原则, 在这个时候,注解的使用是很有必要的。
以上就是自己的对Fastjson的简单介绍,如果希望了解更多,大家 可以到官网学习一下。