利用fastjson反序列化json爲對象和對象數組

利用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;
    }


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