近幾天做了一個項目,需要解析大量的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的簡單介紹,如果希望了解更多,大家 可以到官網學習一下。
