摘要:分享一個(gè)的版本開(kāi)源庫(kù)給大家這個(gè)庫(kù)的使用方法和原生的的使用方式基本一樣但是因?yàn)槭褂昧硕菇馕鲂实玫搅颂岣邘?kù)的地址使用方法導(dǎo)入庫(kù)這個(gè)庫(kù)是開(kāi)源的建議直接拷貝和兩個(gè)進(jìn)入自己工程。
分享一個(gè)Gson的APT版本開(kāi)源庫(kù)給大家
這個(gè)庫(kù)的使用方法和原生的Gson的使用方式基本一樣,但是因?yàn)槭褂昧薃PT(Annotation Processing Tool)而使解析效率得到了提高
GsonAPT庫(kù)的地址
使用方法:
1 導(dǎo)入庫(kù)這個(gè)庫(kù)是開(kāi)源的: 建議直接拷貝:gsonaptannotation和gsonaptcomplier兩個(gè)module進(jìn)入自己工程。
接著:
dependencies {
...
compile project(":gsonaptannotation")
apt project(":gsonaptcomplier")
}
@JsonBean public class LittleBean { String littleBeanName; public String getLittleBeanName() { return littleBeanName; } public void setLittleBeanName(String littleBeanName) { this.littleBeanName = littleBeanName; } public LittleBean() { } public LittleBean(String littleBeanName) { this.littleBeanName = littleBeanName; } }3 編譯工程
編譯后會(huì)生成GsonAPT類(lèi)
4 使用GsonAPT代替new Gson()TestBean testBean = new TestBean(); String str = GsonAPT.toJson(testBean); testBean = GsonAPT.fromJson(str,TestBean.class); Mapmap = new HashMap<>(); map.put(9, new OtherBean("")); map.put(1, new OtherBean(null)); String mapStr = GsonAPT.toJson(map); map = GsonAPT.fromJson(mapStr,new TypeToken
引用測(cè)試結(jié)果
How fasthow much time to parse the small bean:
times | Gson toJson | GsonAPT toJson | Gson fromJson | GsonAPT fromJson |
---|---|---|---|---|
10 | 3 | 1 | 10 | 1 |
10000 | 738 | 363 | 883 | 756 |
100000 | 8361 | 4420 | 10616 | 9346 |
how much time to parse the big bean:
times | Gson toJson | GsonAPT toJson | Gson fromJson | GsonAPT fromJson |
---|---|---|---|---|
1 | 673 | 325 | 811 | 700 |
10 | 7748 | 3740 | 9506 | 8182 |
times | Gson toJson Speed / GsonAPT toJson Speed |
---|---|
10000(small) | 49% |
100000(small) | 52% |
1(big) | 48% |
10(big) | 48% |
times | Gson fromJson Speed / GsonAPT fromJson Speed |
---|---|
10000(small) | 86% |
100000(small) | 88% |
1(big) | 86% |
10(big) | 86% |
@JsonBean的相關(guān)類(lèi)的字段需要有g(shù)et/set方法或者是 public或包訪(fǎng)問(wèn)的
和默認(rèn)的Gson一樣,不能解析非靜態(tài)的內(nèi)部類(lèi)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69872.html
摘要:版本版本簡(jiǎn)介是谷歌開(kāi)源的解析工具。其實(shí)幾款產(chǎn)品的差別都很細(xì)微,有谷歌的信仰加成,所以在這里進(jìn)行一次源碼分析。至于和會(huì)在后續(xù)進(jìn)行追蹤。 零 前期準(zhǔn)備 0 FBI WARNING 文章異常啰嗦且繞彎。 1 版本 Gson 版本 : gson 2.8.5 IDE : idea 2018.3 2 Gson 簡(jiǎn)介 Gson 是谷歌開(kāi)源的 java json 解析工具。市場(chǎng)上同類(lèi)的開(kāi)源產(chǎn)品還有 F...
摘要:最佳解析最佳解析最佳解析是一個(gè)依賴(lài)注入框架,由谷歌開(kāi)發(fā),最早的版本由公司開(kāi)發(fā)。在對(duì)的介紹中指出,即,這里的即數(shù)據(jù)結(jié)構(gòu)中的有向無(wú)環(huán)圖。也就是說(shuō),是一個(gè)基于有向無(wú)環(huán)圖結(jié)構(gòu)的依賴(lài)注入庫(kù),因此的使用過(guò)程中不能出現(xiàn)循環(huán)依賴(lài)。 在開(kāi)發(fā)過(guò)程中使用過(guò)很多優(yōu)秀框架,比如網(wǎng)絡(luò)的okhttp,圖片的Fresco,注入的Gagger2等,都是非常優(yōu)秀的框架。 所以今天在此介紹下至今本人知道的一些比較流行主流且...
閱讀 3563·2021-08-31 09:39
閱讀 1869·2019-08-30 13:14
閱讀 2932·2019-08-30 13:02
閱讀 2779·2019-08-29 13:22
閱讀 2357·2019-08-26 13:54
閱讀 779·2019-08-26 13:45
閱讀 1597·2019-08-26 11:00
閱讀 990·2019-08-26 10:58