iOS json解析 及 MJExtension

網絡數據解析框架

1.? JsonModel

一個 JSON 模型轉換庫,有著比較簡潔的接口。Model 需要繼承自 JSONModel。

2.? yyModel

yyModel比較輕量(算上.h 只有 5 個文件),支持自動的 JSON/Model 轉換,支持定義映射過程。API 簡潔,功能也比較簡單。據說作者是用兩個周末寫出來的,需要謹慎使用。

3.? MJExtension

國內開發(fā)者"小碼哥"開發(fā)的JSON 模型庫,號稱性能超過 JSONModel 和Mantle,使用簡單無侵入。國內有大量使用者。

4.? Mantle? ? ? 唱吧

Github 官方團隊開發(fā)的JSON 模型轉換庫,Model 需要繼承自MTLModel。功能豐富,文檔完善,使用廣泛。

類型轉換太捉急 解析層次比較深的模型邏輯較為復雜

key mapper的邏輯真是要吐血

5.? JsonKit

6.? TouchJson? ? 13年之前比較流行

7.? SBJson? 不建議使用

8.? 原生Json 解析方法 NSJSONSerialization 速度比較快需要我們手動的去建立模型解析比較費時間??梢赃M行高效、自由的進行裝換,但是繁瑣,容易出現錯誤。

2013年數據統(tǒng)計結果

9.? FastEasyMapping

Yalantis 開發(fā)的一個JSON 模型轉換庫,可以自定義詳細的 Model 映射過程,支持CoreData。使用者較少。

SBJSON在多數測試中都處于倒數的第一或倒數第二的位置。所以說,SBJSON實際上在性能這一點上講,確實是非?!癝B”的,實在不值得大家留念。趕快把你的JSON解析庫換成其它的吧!

JSONKit本身做了很多內存上的優(yōu)化,所以不支持ARC,你在使用時可以對其加上 -fno-objc-arc 的編譯標志即可

數據對比:github 最新數據

2016年最新統(tǒng)計結果

用例2:WeiboStatus

從官方微博 App 抓取一條內容完整的微博數據,JSON總共有 580 行(是的,一條微博需要這么大數據量),包含大量嵌套對象、容器對象、類型轉換、日期解析等。這個用例主要是測試在復雜的情況下不同庫的性能。

每次測試執(zhí)行 1000 次,統(tǒng)計耗時毫秒數。

測試結果如下:

Mantle在各個測試中,性能都是最差的

JSONModel和 MJExtension 性能相差不多,但都比 Mantle 性能高。

FastEasyMapping相對來說性能確實比較快。

YYModel性能高出其他幾個庫一個數量級,接近手寫代碼的效率。

FastEasyMapping不支持 NSCoding 協(xié)議,所以不能進行 Archive 的性能測試。

MJExtension在處理復雜對象轉為 JSON 時,存在錯誤。

容錯性:

容錯性主要是測試在默認情況下,當 JSON格式錯誤時,Model框架是否會產生錯誤結果或造成 Crash。

MJExtension詳解:http://www.itdecent.cn/p/93c242452b9b

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容