我正在寻找一个支持低级别JSON(de-)序列化的框架,或者是高度可定制的。
必须以特定方式创建我必须序列化的对象模型的许多类型,并且并非所有信息都可用于通用解析器。 目前我正在使用JSON.Net和大多数类型的JSONConverters,但是类型的实例化是棘手的并且不是很干净(具有JSONConstructor属性的私有构造函数+提供剩余构造数据的构造后初始化方法)。
简而言之,OR-Mapper对我来说并不理想,因为:
{"theType" : "theValue"}
而不是{"type": "theType", "value" : "theValue"}
- 这里的区别主要是可读性)当我编写所有JSONConverters时,我意识到提供低级序列化方法(WriteProperty,ReadValue,WriteObject)的框架对我来说已足够,并且还可以灵活地创建更紧凑,可读的JSON并允许我 为域模型的不同版本创建迁移器,只需很少的开销(与需要用于ORM解析的旧域对象相比)。
是否有任何框架支持低级/高度自定义的JSON解析? 我不想自己编写这样的解析器,尽管我认为它不会那么困难,因为JSON是一种简单的格式(虽然Date解析等可能会让人头疼)。
JSON.Net的JsonReader / Writer类型基本上是我正在寻找的,但我不确定以这种方式使用这些类型是否是一个好主意。如果有其他库在提供此功能方面做得更好 - JSON.Net毕竟打算用作ORM解析器。
答案 0 :(得分:1)
我们将此java library用于极其可配置的JSON。我们把它移植到C#但是。 :)
答案 1 :(得分:0)
要结束这个问题,我会自己发一个答案,虽然如果他有机会完成他的计划并提供他的实施,我会接受Soundararajan的答案。
我最终暂时使用JSONReader / Writer类型的JSON.Net。
一旦/如果性能成为问题,我将切换到supports SAX-like parsing的protobuf-net。
如果有人知道一个更好的库可用于高度可定制/类似SAX的JSON序列化,请随时留下答案,我仍然会看到这个问题。