1. 程式人生 > >Android實戰——GsonFormat、Gson、fastjson快速搞定JSON資料解析

Android實戰——GsonFormat、Gson、fastjson快速搞定JSON資料解析

GsonFormat、Gson、fastjson快速搞定JSON資料解析

本篇文章包括以下內容:

  • GsonFormat的使用
  • Gson框架的使用
  • fastjson框架的使用

GsonFormat的使用

GsonFormat是一個Android Studio的外掛,輸入一段Json格式的資料,會自動生成對應的Bean物件,省去了我們以前手動建立Json物件的時間

一、安裝GsonFormat

在Android Studio中,通過File->Settings->Plugins,然後點選Browse repositories…按鈕

輸入GsonFormat右側進行安裝,我這裡已經安裝過

二、使用GsonFormat

我們準備了一段比較簡單的Json資料作為我們的測試資料

{
    "error_code": 0,
    "reason": "Success",
    "result": {
        "data":[
            {
                "content":"床不在好,有女(你)就行,枕不在久,整完就走,斯是陋室,惟吾色心!!…",
                "hashId":"accd4dea540fe0b2f2205f9234114335",
                "unixtime
":1478579630, "updatetime":"2016-11-08 12:33:50" }, { "content":"老婆問老公:親愛的你覺得我是灰姑娘嗎?老公回答:當然不是了。老婆:那你的意思說是我是白雪公主?老公回答:不,你是黑姑娘。", "hashId":"8144c8979f02c539841968ef8046db98", "unixtime":1478577230, "updatetime
":"2016-11-08 11:53:50" }, { "content":"睡的正香,老婆把我叫醒說她要去衛生間,我說你上廁所就上唄!她說我是要叫你起來穿衣服的,我說那你上廁所我起來穿衣服幹啥?我又不冷!然後就看著老婆把被子抱在身上去上廁所了。", "hashId":"76b7f6c0ba6c3455fbd216820ce4a68c", "unixtime":1478577230, "updatetime":"2016-11-08 11:53:50" }, { "content":"老奶奶加了計程車,到了之後車費顯示是8塊,但是她只給了3塊。司機趕緊叫住老奶奶:“老太太,這車費8塊塊你怎麼只付3元呢?”老奶奶回答:“我剛才坐車的時候計價器顯示5元塊了。那我不就是在給三塊就可以了。", "hashId":"85a82ecf746981ea3f48e5066eb034e1", "unixtime":1478577230, "updatetime":"2016-11-08 11:53:50" }, { "content":"每次看戰爭片時總有一些疑惑,在衝鋒時前面的士兵一邊奔跑著一邊狂打槍,可以理解。但總是看到後面的士兵也緊跟著跑開著槍,難道子彈會拐彎,打不到前面的士兵嗎?……求解答,為什麼打不到隊友?", "hashId":"d3ddd517e97a6dbeac24c82d4ce34e72", "unixtime":1478575431, "updatetime":"2016-11-08 11:23:51" } ]
}
}

使用GsonFormat非常簡單,首先建立一個Bean物件

public class Info {

}

接著在這個類裡面使用alt+shift+s快捷鍵(就是滑鼠右鍵的快捷鍵),進入Generate…,就可以找到GsonFormat

進入GsonFormat將我們的測試Json資料輸入,點選確定,即可完成我們的Bean類的建立

檢視我們自動生成的類

public class Info {

    /**
     * error_code : 0
     * reason : Success
     * result : ......
     */

    private int error_code;
    private String reason;
    private ResultBean result;

    public int getError_code() {
        return error_code;
    }

    public void setError_code(int error_code) {
        this.error_code = error_code;
    }

    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 {
        /**
         * content : 床不在好,有女(你)就行,枕不在久,整完就走,斯是陋室,惟吾色心!!…
         * hashId : accd4dea540fe0b2f2205f9234114335
         * unixtime : 1478579630
         * updatetime : 2016-11-08 12:33:50
         */

        private List<DataBean> data;

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

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

        public static class DataBean {
            private String content;
            private String hashId;
            private int unixtime;
            private String updatetime;

            public String getContent() {
                return content;
            }

            public void setContent(String content) {
                this.content = content;
            }

            public String getHashId() {
                return hashId;
            }

            public void setHashId(String hashId) {
                this.hashId = hashId;
            }

            public int getUnixtime() {
                return unixtime;
            }

            public void setUnixtime(int unixtime) {
                this.unixtime = unixtime;
            }

            public String getUpdatetime() {
                return updatetime;
            }

            public void setUpdatetime(String updatetime) {
                this.updatetime = updatetime;
            }
        }
    }
}

由於我們自動生成的Bean物件沒有加上toString()的方法,為了方便後面的演示,我們手動增加toString()的方法,這裡就不介紹了

Gson框架的使用

Gson–是一款Google公司的用來解析json資料格式的庫

準備工作,匯入依賴:

compile 'com.google.code.gson:gson:2.8.0'

一、Json資料自動生成Bean物件

Gson gson = new Gson();
Info info = gson.fromJson(jsonStr,Info.class);

二、Bean物件轉化為Json資料

String jsonSti = new Gson().toJson(info);

這裡演示我們剛才Info物件的資料,通過TextView顯示出來

Gson gson = new Gson();
Info info = gson.fromJson(jsonStr,Info.class);
tv.setText(info.toString());

效果圖

fastjson框架的使用

Fastjson–是一款阿里巴巴的用來解析json資料格式的庫,據說目前最快

準備工作,匯入依賴:

compile 'com.alibaba:fastjson:1.2.20'

一、Json資料自動生成Bean物件

Info info = JSON.parseObject(jsonStr,Info.class);

二、Bean物件轉化為Json資料

String jsonStr = JSON.toJSONString(info);

這裡演示我們剛才Info物件的資料,通過TextView顯示出來

Info info = JSON.parseObject(jsonStr, Info.class);
tv.setText(info.toString());

效果圖

相關推薦

Android實戰——GsonFormatGsonfastjson快速JSON資料解析

GsonFormat、Gson、fastjson快速搞定JSON資料解析 本篇文章包括以下內容: GsonFormat的使用 Gson框架的使用 fastjson框架的使用 GsonFormat的使用

使用Gson輕鬆解決複雜結構的Json資料解析

JSON簡介 JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。JSON 是儲存和交換文字資訊的語法,類似XML,但是比XML更小、更快,更易解析。 JSON語法 JSON構建於兩種結構:

[Android開發] Json解析工具類,一個類Json解析

一、簡介 利用遞迴的方式反射解析到bean裡面 二、詳細程式碼 1、 Json格式 例如伺服器指定規定json格式為: { "code": "……" , // 返回代號,預留欄位,預設返回null "type":"ER

AndroidJson資料解析(二)--使用GsonJackson和FastJson解析Json資料

/**-----------------Jackson資料解析----------------------------*/ private static ObjectMapper mObjectMapper; private static JsonGenerator mJsonGenerator; pr

fastjsongsonjackson序列化和反序列化效能對比

注:相關依賴 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId

Json和Bean間的序列化和反序列化(JSONObjectGsonFastJson的使用)

json格式校驗 日常開發經常涉及到和json的互動,以下原因會常常會使json格式錯誤: 1、json串的非數字型的鍵值沒有雙引號 2、json中存在\t這樣的表符,這個比較難發現 3、json中缺少{}或[]導致結構不完整 可以通過FE助手或網頁版的json校驗json格

【推薦】fastjsongsonjackson 序列化和反序列化效能對比

第一部分:序列化測試 首先說一下結論。 1.  序列化測試結論 100個物件轉換,gson最快、fastjson其次、jackson最差 b. 10000個物件轉換,gson和fastjson耗時幾乎一樣,jackson最差 100000個物件轉換,fastjson最快、jac

Android實戰】圖片選取拍攝裁剪上傳

圖片上傳 效果圖展示 圖片上傳前的準備 帶圓角的方形圖片 使用的第三方控制元件,主要關注如下一些檔案 RoundedDrawable RoundedImageView RoundedTrans

Android開發-進階:Json字串轉換為java物件的各種實現方法[json_lib框架Gsonorg.json]

JSON (JavaScript Object Notation) 是一種輕量級的資料交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition

fastjsongsonjackson序列化和反序列化效能對比(僅供示例參考)

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</gro

手把手教你制作微信小程序,開源免費快速

免費 list life 支付 直接 domain -i 方式 poster 最近做了個“羅孚傳車”的小程序 一時興起,做了一個小程序,將個人收集的同汽車相關的行業資訊和學習資料,分享到小程序中,既作為歷史資料保存,又提供給更多的人學習和了解,還能裝一下:) 掃描下方小程序

一篇文章懂DataSetDataFrameRDD-《每日五分鐘資料

1. 三者共性: 1、RDD、DataFrame、Dataset全都是spark平臺下的分散式彈性資料集,為處理超大型資料提供便利 2、三者都有惰性機制,執行trainform操作時不會立即執行,遇到Action才會執行 3、三者都會根據spark的記憶體情況自動快取運算,這樣即使資料量很大,也不用擔心會

JSON資料解析Gson(谷歌)和fastjson(阿里巴巴)的異同點

Gson和fastjson分別為谷歌和阿里巴巴對JSON資料進行處理封裝的jar包 Gson(谷歌)和fastjson(阿里巴巴)兩者異同點: 相同點:都是根據JSON資料建立相應的類 不同點

Android:用GSON 五招之內任何JSON陣列

我為什麼寫這篇文章呢?因為前幾晚跟好友 xiasuhuei321 探討了一下GSON解析複雜的JSON的時候,能不能只解析源資料中的陣列,甚至只解析陣列的某一部分。探討了二十分鐘,得出結論:沒用過,不知道。 所以今天特地研究了一下,發現真的So Easy!之前想

Android引導蒙層,安卓新手引導圖,引導圖層,支援橢圓,圓形,矩形多種形狀,一行程式碼快速

package com.laxian.guideview; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.

jmeter新增http請求java請求,將返回的json資料提取出來並將結果追加到一個檔案

jmeter新增http請求、java請求,將返回的json資料提取出來並將結果追加到一個檔案 抽獎活動返回的是json資料,所以需要先將返回的json字串裡面需要統計的欄位提取出來,此處需要統計的是reward欄位(reward即返回的獎品型別) 每個http請求都

Angularjs cors 用getpost方法與springmvc後傳遞json資料的配置

首先介紹跨域問題,基於安全的考慮,頁面只有在同一個域名下,交流資料,比如網易就不能申請百度的服務(抓取網頁那是另外的技術),ajax也是這個使用範圍,跨域就失效了。 在移動開發中,手機本身就是web站點,後臺pc伺服器是另外一個web站點。這樣就存在跨域問題。 早先用js

百度PaddlePaddle再獲新技能 智能推薦對話系統控制領域都能

案例 轉移 深度學習 碰撞 成功 不足 相對 近日 處理 引言:人工智能技術越來越廣泛的應用於各行各業,而這一切都離不開底層深度學習框架的支持。近日,百度深度學習PaddlePaddle正式發布了強化學習框架PARL,同時開源了基於該框架,在NeurIPS 2018強化學習

玩轉IDEA專案結構Project Structure,打Jar包模組/依賴管理全

![](https://img-blog.csdnimg.cn/20210126073041771.png#pic_center) # 前言 你好,我是A哥(YourBatman)。 如何給Module模組單獨增加依賴? 如何知道哪些Module模組用了Spring框架,哪些是web工程? IDEA如何

資料專案實戰30天資料爬蟲專案超清視訊教程

大資料專案實戰30天搞定大資料爬蟲專案超清視訊教程 《大資料專案實戰30天搞定大資料爬蟲專案超清視訊教程》本專案採用JAVA語言實現,絕對基於真實的爬蟲專案進行改進和優化,希望進一步提升大家的大資料專案經驗。本專案基本涵蓋了爬蟲專案的整個流程,包括資料爬蟲、全文檢索、資料視覺化、爬蟲專案