午夜无码人妻aⅴ大片色欲张津瑜,国产69久久久欧美黑人A片,色妺妺视频网,久久久久国产综合AV天堂

如何自己寫一個TypeAdapter及注冊TypeAdapter和處理Enum類型.

這篇文章將為大家詳細講解有關(guān)如何自己寫一個TypeAdapter及注冊TypeAdapter和處理Enum類型.,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

在橋東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),橋東網(wǎng)站建設(shè)費用合理。

枚舉類型給我們的程序帶來了好處,如何用Gson來實現(xiàn)與Json的互轉(zhuǎn)呢?請看本文.

如何自己寫一個TypeAdapter及注冊TypeAdapter和處理Enum類型.

實體類:

1

2

3

public enum PackageState {

    PLAY, UPDATE, UPDATING, DOWNLOAD, DOWNLOADING,

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

public class PackageItem {

    private String name;

    private PackageState state;

    private String size;

 

    public String getName() {

        return name;

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public PackageState getState() {

        return state;

    }

 

    public void setState(PackageState state) {

        this.state = state;

    }

 

    public String getSize() {

        return size;

    }

 

    public void setSize(String size) {

        this.size = size;

    }

 

    @Override

    public String toString() {

        return "PackageItem [name=" + name + ", size=" + size + ", state="

                + state + "]";

    }

}

自己寫一個轉(zhuǎn)換器實現(xiàn)JsonSerializer<T>接口和jsonDeserializer<T>接口:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

mport java.lang.reflect.Type;

 

import com.google.gson.JsonDeserializationContext;

import com.google.gson.JsonDeserializer;

import com.google.gson.JsonElement;

import com.google.gson.JsonParseException;

import com.google.gson.JsonPrimitive;

import com.google.gson.JsonSerializationContext;

import com.google.gson.JsonSerializer;

 

public class EnumSerializer implements JsonSerializer<PackageState>,

        JsonDeserializer<PackageState> {

 

    // 對象轉(zhuǎn)為Json時調(diào)用,實現(xiàn)JsonSerializer<PackageState>接口

    @Override

    public JsonElement serialize(PackageState state, Type arg1,

            JsonSerializationContext arg2) {

        return new JsonPrimitive(state.ordinal());

    }

 

    // json轉(zhuǎn)為對象時調(diào)用,實現(xiàn)JsonDeserializer<PackageState>接口

    @Override

    public PackageState deserialize(JsonElement json, Type typeOfT,

            JsonDeserializationContext context) throws JsonParseException {

        if (json.getAsInt() < PackageState.values().length)

            return PackageState.values()[json.getAsInt()];

        return null;

    }

 

}

測試類:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

 

public class GsonTest6 {

 

    public static void main(String[] args) {

        GsonBuilder gsonBuilder = new GsonBuilder();

        gsonBuilder.registerTypeAdapter(PackageState.class,

                new EnumSerializer());

        Gson gson = gsonBuilder.create();

        PackageItem item = new PackageItem();

        item.setName("item_name");

        item.setSize("500M");

        item.setState(PackageState.UPDATING);// 這個 state是枚舉值

 

        String s = gson.toJson(item);

        System.out.println(s);

 

        System.out.println("--------------------------------");

 

        PackageItem retItem = gson.fromJson(s, PackageItem.class);

        System.out.println(retItem);

    }

}

輸出結(jié)果(結(jié)果中已經(jīng)將state的對應(yīng)枚舉類型轉(zhuǎn)為了int類型):

1

2

3

{"name":"item_name","state":2,"size":"500M"}

--------------------------------

PackageItem [name=item_name, size=500M, state=UPDATING]

分類: JSP

標簽: Enum, Gson, json, TypeAdapter, 實例

關(guān)于如何自己寫一個TypeAdapter及注冊TypeAdapter和處理Enum類型.就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

本文題目:如何自己寫一個TypeAdapter及注冊TypeAdapter和處理Enum類型.
分享鏈接:http://www.ekvhdxd.cn/article28/iecjjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、自適應(yīng)網(wǎng)站、網(wǎng)站內(nèi)鏈小程序開發(fā)、外貿(mào)建站電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)