Android#07--用OkHttp獲取數據向瓷,用fastjson解析數據

2017-3-21

框架使人懶惰肠套,而我正想偷懶一下。
實現目標:用OkHttp獲取數據猖任,用fastjson解析數據

版權聲明:本文為博主原創(chuàng)文章你稚,轉載請說明出處。

[1]數據源

JSON元素中還有JSON數據

{
  "scanNumber": "1",
  "message": "success",
  "user": {
    "id": "082c9098",
    "serial": "1478571500302eSxpLEBIR9k3HogJQWLI6znTS",
    "createTime": "2016-11-27 16:37:27",
    "updateTime": "2016-11-27 16:37:27",
    "user_id": "f56c827f-027f-49e0-8b35-be3860915537",
    "sex": null,
    "constellation": null
  }
}

[2]獲取數據

用OkHttp獲取數據(GET方法)
[1]拿到OkHttpClient
[2]構造Request
[3]將Request封裝為call
[4]執(zhí)行call

private  boolean doGet(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    enqueue();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
        return false;
    }
    private void enqueue(){
        //[1]拿到OkHttpClient
        OkHttpClient client = new OkHttpClient();
        //[2]構造Request 
        Request request = new Request.Builder()
                .url("這里填請求的地址")
                .build();
        //[3]將Request封裝為call
        Call call=client.newCall(request);
        //[4]執(zhí)行call
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Request request, IOException e) {
                L.i(LOGTAG,"onFailure"+e.getMessage());
                e.printStackTrace();
            }
            @Override
            public void onResponse(Response response) throws IOException {
                res=response.body().string();
                L.i(LOGTAG,"onResponse"+res);
                //ToDo 接下來是解析數據
            }
        });
    }

[3]根據數據源寫javaBean

[1]jsonObject里面包含一個userObject
[2]創(chuàng)建兩個Bean類
注意:Bean中的變量名必須和返回過來的JSON串里面的參數一樣,不一樣的變量名將不會有數據刁赖。多了或者少了不會有影響搁痛。

/**
 *"scanNumber": "1",
 "message": "success",
 "user": {
 "id": "082c9098-0326-4f18-8f5d-5e0494d9c6ab",
 "serial": "1478571500302eSxpLEBIR9k3HogJQWLI6znTS",
 "createTime": "2016-11-27 16:37:27",
 "updateTime": "2016-11-27 16:37:27",
 "user_id": "f56c827f-027f-49e0-8b35-be3860915537",
 "sex": null,
 "constellation": null
 }
 */

public class ScanNumber {
    private String scanNumber;
    private String message;
    private UserBean user;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getScanNumber() {
        return scanNumber;
    }

    public void setScanNumber(String scanNumber) {
        this.scanNumber = scanNumber;
    }

    public UserBean getUser() {
        return user;
    }

    public void setUser(UserBean user) {
        this.user = user;
    }
}
/**
 * "user": {
 "id": "082c9098-0326-4f18-8f5d-5e0494d9c6ab",
 "serial": "1478571500302eSxpLEBIR9k3HogJQWLI6znTS",
 "createTime": "2016-11-27 16:37:27",
 "updateTime": "2016-11-27 16:37:27",
 "user_id": "f56c827f-027f-49e0-8b35-be3860915537",
 "sex": null,
 "constellation": null
 }
 */

public class UserBean {
    private String id;
    private String serial;
    private String createTime;
    private String updateTime;
    private String user_id;
    private String sex;
    private String constellation;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getSerial() {
        return serial;
    }

    public void setSerial(String serial) {
        this.serial = serial;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public String getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }

    public String getUser_id() {
        return user_id;
    }

    public void setUser_id(String user_id) {
        this.user_id = user_id;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getConstellation() {
        return constellation;
    }

    public void setConstellation(String constellation) {
        this.constellation = constellation;
    }
}

[4]用fastjson解析數據

要想獲取到user的信息,需要先映射到大括號里的內容宇弛,之后再get

private void jsonParser(String jsonData) {
        try{
            //json數據解析成一個對象
            ScanNumber scanNumber=JSON.parseObject(jsonData,ScanNumber.class);
            UserBean userBean=JSON.parseObject(jsonData,ScanNumber.class).getUser();
            String message = scanNumber.getMessage();
            String user_id=userBean.getUser_id();
            L.i(LOGTAG,"user_id"+user_id);   //打印Log
            L.i("message"," "+scanNumber.getMessage());
        }catch(Exception e){
                e.printStackTrace();
        }
    }

[5]保存數據

private void saveData(String data){
        preferences = getSharedPreferences("count", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean("user_id", user_id);
        editor.apply();
        L.i("保存結果", user_id);
    }

大三的這個寒假壓力好大鸡典,但還是想說寒假快樂。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末枪芒,一起剝皮案震驚了整個濱河市彻况,隨后出現的幾起案子,更是在濱河造成了極大的恐慌舅踪,老刑警劉巖纽甘,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異抽碌,居然都是意外死亡悍赢,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門货徙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來左权,“玉大人,你說我怎么就攤上這事痴颊′套埽” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵祷舀,是天一觀的道長瀑梗。 經常有香客問我,道長裳扯,這世上最難降的妖魔是什么抛丽? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮饰豺,結果婚禮上亿鲜,老公的妹妹穿的比我還像新娘。我一直安慰自己冤吨,他們只是感情好蒿柳,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漩蟆,像睡著了一般垒探。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怠李,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天圾叼,我揣著相機與錄音蛤克,去河邊找鬼。 笑死夷蚊,一個胖子當著我的面吹牛构挤,可吹牛的內容都是我干的。 我是一名探鬼主播惕鼓,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼筋现,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箱歧?” 一聲冷哼從身側響起夫否,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叫胁,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體汞幢,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡驼鹅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了森篷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片输钩。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖仲智,靈堂內的尸體忽然破棺而出买乃,到底是詐尸還是另有隱情,我是刑警寧澤钓辆,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布剪验,位于F島的核電站,受9級特大地震影響前联,放射性物質發(fā)生泄漏功戚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一似嗤、第九天 我趴在偏房一處隱蔽的房頂上張望啸臀。 院中可真熱鬧,春花似錦烁落、人聲如沸乘粒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灯萍。三九已至,卻和暖如春每聪,著一層夾襖步出監(jiān)牢的瞬間竟稳,已是汗流浹背属桦。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留他爸,地道東北人聂宾。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像诊笤,于是被迫代替她去往敵國和親系谐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理讨跟,服務發(fā)現纪他,斷路器,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,163評論 25 707
  • 1. Java基礎部分 基礎部分的順序:基本語法晾匠,類相關的語法茶袒,內部類的語法,繼承相關的語法凉馆,異常的語法薪寓,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • 高考結束后,挺尷尬的 本以為兩個人的父母都在這個小小的城市 這兒也都是兩個人生活了近二十年的地方 即使大學去了兩個...
    顏末浮世繪閱讀 377評論 0 0
  • “姑姑澜共,你還好嗎向叉?” “挺好的,君兒啊嗦董,你孩子多大了母谎。” “一歲半了京革,好調皮的奇唤。” “我都不知道你有...
    我是椿閱讀 910評論 6 7