android開發(fā)學(xué)習(xí)之Gson解析

最近在學(xué)習(xí)一些新的知識(shí),試著用MVP模式寫項(xiàng)目凰棉。以前在項(xiàng)目中使用的都是JsonObject和JsonArray來解析Json數(shù)據(jù),確實(shí)麻煩。下面一起來學(xué)習(xí)下Gson的基本使用:

一粘拾、推薦大家一個(gè)Android studio里面的工具:進(jìn)入setting——Plugins中安裝
使用方法:在建好的實(shí)體類里面右擊選中g(shù)enerate--Gsonformat;將Json數(shù)據(jù)方法 format一下 Ok 搞定创千!

二缰雇、Gson解析:Json數(shù)據(jù):

{
    "reason": "成功的返回",
    "result": {
        "stat": "1",
        "data": [
            {
                "uniquekey": "6c4caa0c3ba6e05e2a272892af43c00e",
                "title": "楊冪的發(fā)際線再也回不去了么入偷?網(wǎng)友吐槽像半禿",
                "date": "2017-01-05 11:03",
                "category": "yule",
                "author_name": "騰訊娛樂",
                "url": "http://mini.eastday.com/mobile/170105110355287.html?qid=juheshuju",
                "thumbnail_pic_s": "http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_1_mwpm_03200403.jpeg",
                "thumbnail_pic_s02": "http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_2_mwpm_03200403.jpeg",
                "thumbnail_pic_s03": "http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_3_mwpm_03200403.jpeg"
            }
        ]
    }
}

以上面的數(shù)據(jù)為例,使用工具將數(shù)據(jù)封裝為實(shí)體類械哟;

/**
 * 新聞實(shí)體類
 * Created by zzj on 2017/1/13.
 */
public class NewsDesignResEntry extends BaseEntity {

    /**
     * reason : 成功的返回
     * result : {"stat":"1","data":[{"uniquekey":"6c4caa0c3ba6e05e2a272892af43c00e","title":"楊冪的發(fā)際線再也回不去了么疏之?網(wǎng)友吐槽像半禿","date":"2017-01-05 11:03","category":"yule","author_name":"騰訊娛樂","url":"http://mini.eastday.com/mobile/170105110355287.html?qid=juheshuju","thumbnail_pic_s":"http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_1_mwpm_03200403.jpeg","thumbnail_pic_s02":"http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_2_mwpm_03200403.jpeg","thumbnail_pic_s03":"http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_3_mwpm_03200403.jpeg"}]}
     */

    private String reason;
    /**
     * stat : 1
     * data : [{"uniquekey":"6c4caa0c3ba6e05e2a272892af43c00e","title":"楊冪的發(fā)際線再也回不去了么?網(wǎng)友吐槽像半禿","date":"2017-01-05 11:03","category":"yule","author_name":"騰訊娛樂","url":"http://mini.eastday.com/mobile/170105110355287.html?qid=juheshuju","thumbnail_pic_s":"http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_1_mwpm_03200403.jpeg","thumbnail_pic_s02":"http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_2_mwpm_03200403.jpeg","thumbnail_pic_s03":"http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_3_mwpm_03200403.jpeg"}]
     */

    private ResultBean result;

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public ResultBean getResult() {
        return result;
    }

    public void setResult(ResultBean result) {
        this.result = result;
    }

    public static class ResultBean {
        private String stat;
        /**
         * uniquekey : 6c4caa0c3ba6e05e2a272892af43c00e
         * title : 楊冪的發(fā)際線再也回不去了么暇咆?網(wǎng)友吐槽像半禿
         * date : 2017-01-05 11:03
         * category : yule
         * author_name : 騰訊娛樂
         * url : http://mini.eastday.com/mobile/170105110355287.html?qid=juheshuju
         * thumbnail_pic_s : http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_1_mwpm_03200403.jpeg
         * thumbnail_pic_s02 : http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_2_mwpm_03200403.jpeg
         * thumbnail_pic_s03 : http://03.imgmini.eastday.com/mobile/20170105/20170105110355_806f4ed3fe71d04fa452783d6736a02b_3_mwpm_03200403.jpeg
         */

        private List<DataBean> data;

        public String getStat() {
            return stat;
        }

        public void setStat(String stat) {
            this.stat = stat;
        }

        public List<DataBean> getData() {
            return data;
        }

        public void setData(List<DataBean> data) {
            this.data = data;
        }

        public static class DataBean {
            private String uniquekey;
            private String title;
            private String date;
            private String category;
            private String author_name;
            private String url;
            private String thumbnail_pic_s;
            private String thumbnail_pic_s02;
            private String thumbnail_pic_s03;

            public String getUniquekey() {
                return uniquekey;
            }

            public void setUniquekey(String uniquekey) {
                this.uniquekey = uniquekey;
            }

            public String getTitle() {
                return title;
            }

            public void setTitle(String title) {
                this.title = title;
            }

            public String getDate() {
                return date;
            }

            public void setDate(String date) {
                this.date = date;
            }

            public String getCategory() {
                return category;
            }

            public void setCategory(String category) {
                this.category = category;
            }

            public String getAuthor_name() {
                return author_name;
            }

            public void setAuthor_name(String author_name) {
                this.author_name = author_name;
            }

            public String getUrl() {
                return url;
            }

            public void setUrl(String url) {
                this.url = url;
            }

            public String getThumbnail_pic_s() {
                return thumbnail_pic_s;
            }

            public void setThumbnail_pic_s(String thumbnail_pic_s) {
                this.thumbnail_pic_s = thumbnail_pic_s;
            }

            public String getThumbnail_pic_s02() {
                return thumbnail_pic_s02;
            }

            public void setThumbnail_pic_s02(String thumbnail_pic_s02) {
                this.thumbnail_pic_s02 = thumbnail_pic_s02;
            }

            public String getThumbnail_pic_s03() {
                return thumbnail_pic_s03;
            }

            public void setThumbnail_pic_s03(String thumbnail_pic_s03) {
                this.thumbnail_pic_s03 = thumbnail_pic_s03;
            }
        }
    }
}

請求解析:

public List<NewsDesignResEntry.ResultBean.DataBean> designResDatas = new ArrayList<>();

          @Override
                    public void onSuccess(String s, Call call, Response response) {
                       Tools.sectionLog("okgolog","--json---"+s);
                        //實(shí)例化Gson
                        Gson gson = new Gson();
//                        Type listType = new TypeToken<List<NewsDesignResEntry>>(){}.getType();
                        //將Json數(shù)據(jù)轉(zhuǎn)換成我們封裝的對(duì)象
                        NewsDesignResEntry entry = gson.fromJson(s, NewsDesignResEntry.class);
                        //通過對(duì)象獲取我們需要的數(shù)據(jù)锋爪,進(jìn)行顯示
                        designResDatas = entry.getResult().getData();
//                        designResDatas.add(entry);
                        view.loadListSuccess(1,designResDatas);
                    }
                });

注意:剛使用時(shí),利用Type從中直接獲取時(shí)爸业,出現(xiàn)錯(cuò)誤:

多條數(shù)據(jù)時(shí)不能從中直接獲取其骄,需要一步一步向下取。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扯旷,一起剝皮案震驚了整個(gè)濱河市拯爽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钧忽,老刑警劉巖毯炮,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異耸黑,居然都是意外死亡桃煎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門崎坊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來备禀,“玉大人,你說我怎么就攤上這事奈揍∏” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵男翰,是天一觀的道長另患。 經(jīng)常有香客問我,道長蛾绎,這世上最難降的妖魔是什么昆箕? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮租冠,結(jié)果婚禮上鹏倘,老公的妹妹穿的比我還像新娘。我一直安慰自己顽爹,他們只是感情好纤泵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镜粤,像睡著了一般捏题。 火紅的嫁衣襯著肌膚如雪玻褪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天公荧,我揣著相機(jī)與錄音带射,去河邊找鬼。 笑死循狰,一個(gè)胖子當(dāng)著我的面吹牛窟社,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晤揣,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼桥爽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了昧识?” 一聲冷哼從身側(cè)響起钠四,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跪楞,沒想到半個(gè)月后缀去,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甸祭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年缕碎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片池户。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咏雌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出校焦,到底是詐尸還是另有隱情赊抖,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布寨典,位于F島的核電站氛雪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏耸成。R本人自食惡果不足惜报亩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望井氢。 院中可真熱鬧弦追,春花似錦、人聲如沸花竞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽左胞。三九已至寇仓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烤宙,已是汗流浹背遍烦。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留躺枕,地道東北人服猪。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像拐云,于是被迫代替她去往敵國和親罢猪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容