自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

幾種常見的JSON解析器比較

原創(chuàng)
系統(tǒng) OpenHarmony
該論文主要討論在Android操作系統(tǒng)上不同解析器處理移動(dòng)設(shè)備JSON格式的問題。

??想了解更多內(nèi)容,請?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

大家好! 我是來自深圳技術(shù)大學(xué)FSR實(shí)驗(yàn)室的同學(xué),標(biāo)題FFH就是FSRlab For Harmony!并且我也正在參加OpenHarmony成長計(jì)劃從論文到開源提交研究,以后我們也會(huì)陸續(xù)在這個(gè)社區(qū)記錄學(xué)習(xí)心得和體會(huì)。

參考文獻(xiàn)

Spatial Data Monitoring and Mobile Applications – Comparison of Methods

for Parsing JSON in Android Operating System

引言

上一篇文章簡單地講了為什么XML會(huì)逐漸被JSON取代,接下來這篇文章,我們來看一下國外幾種常見JSON解析器的比較,分別是Gson,AndroidJson,JSON.simple,JSON.smart, Jackson .以下分析大部分來自上面的參考文獻(xiàn),該論文主要討論在Android操作系統(tǒng)上不同解析器處理移動(dòng)設(shè)備JSON格式的問題。

Gson

第一種解析方法稱為Gson,來自com.google.gson.stream.JsonReaderpackage,是由Google團(tuán)隊(duì)為Java開發(fā)的,

AndroidJson

第二種方法稱為AndroidJson,使用谷歌直接提供的解析庫,是Android SDK的一部分。與其他方法不同,無需將其他庫編譯到最終應(yīng)用程序中。然而缺點(diǎn)是在與服務(wù)器建立通信時(shí),下載的數(shù)據(jù)位于InputStream類對象中,這一步需要將數(shù)據(jù)轉(zhuǎn)換為字符串類對象。因此對于大數(shù)據(jù)量的解析,性能要求會(huì)很高。

JSON.simple

JSON.simple用的是JSON.simple庫,是基于堆的方法解析數(shù)據(jù)的。

JSON.smart

JSON.smart從代碼結(jié)構(gòu)上看和JSON.simple很相似,不同的是,JSON.smart是以性能為驅(qū)動(dòng)。

Jackson

Jackson用的是Jackson JSON Processor庫

場景介紹

該場景在不同的安卓設(shè)備上分別對10, 50, 100, 200, 500, 1000 和 5000 量級的空間數(shù)據(jù)進(jìn)行解析,以下圖表的X軸是數(shù)據(jù)量,Y軸是不同解析庫消耗的時(shí)間. Graph1-3提供了在單個(gè)設(shè)備上解析所需的測量時(shí)間。所有值均以毫秒為單位提供。對每個(gè)設(shè)備進(jìn)行十次適當(dāng)?shù)臏y量,然后從測量值中獲得平均值。

結(jié)論

在圖表上測試的數(shù)據(jù)來看,很明顯,對于大型數(shù)據(jù)解析,使用Jackson 是最有利的方法。但是這種方法不適用于小型數(shù)據(jù)的解析,小型的數(shù)據(jù)量選擇Gson性能可能會(huì)更佳。

fastJson和Jackson

這里我也想提一下國內(nèi)阿里大神溫少憑一己之力撐起的fastJson,這個(gè)庫以“快”出名,在國內(nèi)有人使用,但是在國外大部分項(xiàng)目依然選擇Jackson,這又是為什么呢?

因?yàn)橹挥衒astJson一個(gè)人負(fù)責(zé),而像Jackson這些庫是由一個(gè)團(tuán)隊(duì)負(fù)責(zé)的,所以一個(gè)人的團(tuán)隊(duì)開發(fā)的庫可以比一個(gè)團(tuán)隊(duì)開發(fā)的還有性能優(yōu)勢,可以想到是走了些捷徑,這些捷徑就是在fastJson中寫死了一些代碼,導(dǎo)致擴(kuò)展性不高,犧牲了java某些應(yīng)該兼容的特性,以達(dá)到了所謂的快,其代碼質(zhì)量相較國外的庫是比較差的。

所以fastJson之所以沒在國際上流行起來,最主要的原因應(yīng)該是開發(fā)者的思路全放到快上去了,而偏離了標(biāo)準(zhǔn)及功能性,質(zhì)量也不夠好,有點(diǎn)“舍本逐末"的味道,并且沒有英文文檔,這樣就更沒法指望老外用了。

而Jackson的拓展性很高。各種奇葩需求都能得到滿足,開源代碼質(zhì)量也比較高,開源項(xiàng)目社區(qū)的運(yùn)營也比較好。

參考文獻(xiàn)

Spatial Data Monitoring and Mobile Applications – Comparison of Methods

for Parsing JSON in Android Operating System

https://www.zhihu.com/question/44199956

??想了解更多內(nèi)容,請?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2020-12-02 10:13:45

JacksonJDK解析器

2010-01-07 16:37:04

JSON解析器

2010-01-07 17:24:31

JSON 解析器

2022-06-28 08:17:10

JSON性能反射

2009-12-25 15:01:43

ADSL寬帶接入技術(shù)

2023-12-30 13:33:36

Python解析器JSON

2013-07-23 06:39:49

Json字符串到JsoAndroid開發(fā)學(xué)習(xí)Json萬能解析器

2009-03-19 09:26:05

RSS解析器MagpieRSS

2014-05-06 09:27:54

2010-02-22 13:38:50

Python解析器

2013-03-27 11:33:32

iOS開發(fā)iOSjson解析方式

2010-02-22 16:51:03

Python 解析器

2015-12-25 10:44:02

Java操作

2024-02-22 08:06:45

JSON策略解析器

2021-03-18 10:56:59

SpringMVC參數(shù)解析器

2009-01-03 14:39:00

ibmdwSpirit

2010-03-05 10:14:53

Ubuntu ruby

2011-04-01 16:16:27

JavaScript

2021-10-03 15:02:50

HTTPNodejs

2009-12-14 18:59:27

Ruby解析器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號