我正在尋找一個支持JSON(de-)序列化的框架,它的低級別或高度可定製。哪個框架最適合支持高度可定製的JSON序列化?
我必須序列化的許多類型的對象模型必須以特定方式創建,而不是所有信息都可用於通用分析器。 目前我使用JSON.Net與JSONConverters的大多數類型,但類型的實例是棘手的,不是很乾淨(私人構造函數與JSONConstructor屬性+後建設初始化方法,提供剩餘的施工數據)。
總之,一個OR映射器是不理想的我,因爲:
- 對象是不是波蘇斯(沒有默認構造函數,而不是在解析器提供的所有構造信息)
- 某些類型的可遠表示比OR-Mapper創建的更加緊湊和可讀(例如,值類型對可以存儲爲
{"theType" : "theValue"}
而不是{"type": "theType", "value" : "theValue"}
--這裏的區別主要是可讀性) - 對域模型的更改很難支持;我需要一個老解析器老波蘇斯解析遺留數據,轉換那些curernt波蘇斯並與當前解析器序列化(至少我認爲這就是它如何與OR映射器完成)
當我寫的所有JSONConverters我意識到,提供低級別序列化方法(WriteProperty,ReadValue,WriteObject)的框架對我來說就足夠了,並且還提供了創建更緊湊,可讀JSON的靈活性,並允許我爲不同版本的域創建遷移器模型幾乎沒有開銷(與需要傳統域對象進行ORM解析相比)。
是否有任何框架支持低級別/高度自定義的JSON解析? 我寧願不自己編寫這樣的解析器,即使我認爲它不會那麼困難,因爲JSON是一種簡單的格式(儘管日期解析等可能會令人頭疼)。
JSON.Net的JsonReader/Writer類型基本上是我正在尋找的東西,但我不確定以這種方式使用這些類型是否是一個好主意,如果還有其他庫在提供此功能方面做得更好 - JSON.Net畢竟打算用作ORM解析器。
這就是我正在尋找的,它在Java中太糟糕了。你有沒有發佈你的C#端口的傑克遜或知道類似的C#解析器? – enzi
很抱歉,我的組織不會允許我這樣做。但我現在有計劃,但不是太早:(:(。 – Soundararajan