Swifter.Json功能強(qiáng)大、高性能的 JSON 序列化/反序列化庫
功能強(qiáng)大、高性能的 JSON 序列化和反序列化庫,適用于 .Net 平臺(tái)。
特性
(1): 支持深度復(fù)雜的對(duì)象結(jié)構(gòu)且易于使用。 (2): 用 $ref 表示重復(fù)和循環(huán)引用的序列化和反序列化。 (3): 目前唯一支持 ref 屬性的 JSON 庫。 (4): 支持幾乎所有您常用的類型!并允許您自定義類型的行為。 (5): 支持 .Net Framework 2.0 +, .Net Core 2.0+, .Net Standard 2.0+, Mono, Xamarin, Unity。
Swifter.Json 實(shí)用功能
(1): 縮進(jìn)美化 Json。 (2): 允許忽略 0 或 null 或 "" 值。 (3): 允許使用 [RWField] 特性定制屬性或字段的行為。 (4): 允許設(shè)置最大深度來限制內(nèi)容大小。
Swifter.Json 支持的類型
bool, byte, sbyte, char, shoft, ushoft, int, uint, long, ulong, float, double, decimal, string, enum, DateTime, DateTimeOffset, Guid, TimeSpan, DBNull, Nullable<T>, Version, Type, Array, Multidimensional-Arrays, IList, IList<T>, ICollection, ICollection<T>, IDictionary, IDictionary<TKey, TValue>, IEnumerable, IEnumerable<T>, DataTable, DbDataReader ... 其余類型將會(huì)被當(dāng)作 Object,以 屬性鍵/屬性值 的形式映射。
Swifter.Json 安全嗎?
每次發(fā)布之前我都會(huì)觀察至少一個(gè)月,期間會(huì)進(jìn)行大量的測試,并且在實(shí)際項(xiàng)目中使用未發(fā)布的版本 來確保發(fā)布版本的穩(wěn)定性。但即使這樣,我也無法保證它一定安全。所以,如果您發(fā)現(xiàn)了 Bug 或某些不合理的地方請(qǐng)及時(shí)聯(lián)系我,郵箱 [email protected]。
性能測試對(duì)比
* 圖表中的顏色隨所用時(shí)間從 綠色 漸變?yōu)?nbsp;黃色。當(dāng)用時(shí)超過 3 倍時(shí)將以亮黃色顯示。 Timeout: 表示用時(shí)過久。 Exception: 表示發(fā)生了異常。 Error: 未發(fā)生異常,但結(jié)果不正確。 * Swifter.Json 第一次執(zhí)行需要額外的時(shí)間來生成一個(gè) “操作類” (FastObjectRW<T>), 則會(huì)越來越快。所以如果您的程序需要長期運(yùn)行,那么 Swifter.Json 是您優(yōu)的選擇。 如果您的程序不適用這種模式,那么下面介紹的 XObjectRW<T> 也許適合您。
原理
(1): 最優(yōu)秀的整型和浮點(diǎn)型 ToString 和 Parse 方法實(shí)現(xiàn)。 (2): Emit 實(shí)現(xiàn)的高性能對(duì)象映射工具。 (3): 本地內(nèi)存分配!拒絕 .Net 托管二次內(nèi)存。 (4): 使用線程緩存,讓您的程序運(yùn)行越久速度越快。 (5): 內(nèi)部全指針運(yùn)算,相當(dāng)于使用了 .Net Core 新技術(shù) Span<T>!
測試時(shí)其他庫所使用的版本
評(píng)論
圖片
表情


