利用fastjson反序列化json爲對象和對象數組
利用 fastjosn 將 .json文件 反序列化爲 java.class 和 java.util.List
fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。
【主要特點】
···快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson)
···強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)
···零依賴(沒有依賴其它任何類庫除了JDK) —— [ 開源中國社區]
反序列化函數
· parseObject
-將 json字符串 反序列化爲 java.class
@sherineZJU
List<T> temp= JSON.parseObject(fastjson,T.class);
//transform the json to T
-fastjson 爲 json格式的字符串(String類型)
-T 爲 與 json格式對應的 自定義 java.class。
· parseObject
-將 json字符串 反序列化爲 java.util.List
@sherineZJU
List<T> oldk = JSONArray.parseArray(fastjson,T.class);
//transform the json to List<T>
-fastjson 爲 json格式的字符串(String類型)
-List< T> 爲 與 json格式對應的 自定義 java.util.List。
java.class 與 json字符串 的對應關係
注意 json字符串 的關鍵字一定要與 java.class 中的對應變量名相同。
- 第一個例子
json字符串
{
"version": [
{
"intro": "斷除墮胎,殺人,殺牛,宰羊,殺豬,宰雞,殺大象,殺馬,殺魚,打死蚊子、螞蟻、蟑螂等,殺龍、猴子,出佛身血,自殺。",
"degree": 1,
"word": "不殺生"
},
{
"intro": "墮胎,殺人,殺牛,宰羊,殺豬,宰雞,殺大象,殺馬,殺魚,打死蚊子、螞蟻、蟑螂等,殺龍、猴子,出佛身血,自殺。傷害別人。自己親自做,唆使別人做,讚歎別人做。用器杖、毒藥、明咒等。",
"degree": -1,
"word": "殺生"
}
],
"name": "殺生",
"id": "x-1-1",
"style": "身三",
"style_color": 1,
"io": "i"
}
java.class
import java.util.ArrayList;
import java.util.List;
/**
* @author sherine_zju
* @version 1.0
* fastjson 將 json 反序列化 爲 java.class and java.util.List
*/
public class old_karma {
List<version> version = new ArrayList<version>();
public String name;
public String id;
public String style;
public int style_color;
public char io;
public List<version> getVersion() {
return version;
}
public void setVersion(List<version> version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
public int getStyle_color() {
return style_color;
}
public void setStyle_color(int style_color) {
this.style_color = style_color;
}
public char getIo() {
return io;
}
public void setIo(char io) {
this.io = io;
}
}
class version{
public String intro;
public int degree;
public String word;
public String getIntro() {
return intro;
}
public void setIntro(String intro) {
this.intro = intro;
}
public int getDegree() {
return degree;
}
public void setDegree(int degree) {
this.degree = degree;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
}
-第二個例子
json字符串
{
"bad": {
"degree": -1,
"intro": "墮胎,殺人,殺牛,宰羊,殺豬,宰雞,殺大象,殺馬,殺魚,打死蚊子、螞蟻、蟑螂等,殺龍、猴子,出佛身血,自殺。傷害別人。自己親自做,唆使別人做,讚歎別人做。用器杖、毒藥、明咒等。",
"name": "殺生",
"word": "殺生"
},
"good": {
"degree": 1,
"intro": "斷除墮胎,殺人,殺牛,宰羊,殺豬,宰雞,殺大象,殺馬,殺魚,打死蚊子、螞蟻、蟑螂等,殺龍、猴子,出佛身血,自殺。",
"name": "不殺生",
"word": "不殺生"
},
"id": "x-1-1",
"io": "i",
"name": "殺生",
"style": "身三",
"style_color": 1
}
java.class
import java.util.ArrayList;
import java.util.List;
/**
* @author sherine_zju
* @version 1.0
* fastjson 將 json 反序列化 爲 java.class and java.util.List
*/
public class new_karma {
public String name;
public String id;
public String style;
public int style_color;
public char io;
public Bad bad;
public Good good;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
public int getStyle_color() {
return style_color;
}
public void setStyle_color(int style_color) {
this.style_color = style_color;
}
public char getIo() {
return io;
}
public void setIo(char io) {
this.io = io;
}
public Bad getBad() {
return bad;
}
public void setBad(Bad bad) {
this.bad = bad;
}
public Good getGood() {
return good;
}
public void setGood(Good good) {
this.good = good;
}
}
class Good{
public String name;
public int degree;
public String word;
public String intro;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getDegree() {
return degree;
}
public void setDegree(int degree) {
this.degree = degree;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public String getIntro() {
return intro;
}
public void setIntro(String intro) {
this.intro = intro;
}
}
class Bad{
public String name;
public int degree;
public String word;
public String intro;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getDegree() {
return degree;
}
public void setDegree(int degree) {
this.degree = degree;
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public String getIntro() {
return intro;
}
public void setIntro(String intro) {
this.intro = intro;
}
}