我一直在使用.Net 4.x中的几个序列化程序,并认为我从.Net继承了它们3.5次。我刚才意识到当时大多数这些序列化程序都无法对任何C#字典进行序列化和反序列化。
在我正在重构的代码中,我看到的工作区就像流式传输一个List< T>而不是字典< string,T> (我认为这是一种解决方法,希望避免使用串行器的内置功能)。
您最喜欢的JSON序列化程序的状态是什么?
另外:您知道您的序列化程序是否符合JSON API吗? (JSONAPI.org)
答案 0 :(得分:0)
http://www.newtonsoft.com/json是我最常用的。其中一个更快,更灵活。它是asp.net MVC / WebAPI
使用的默认序列化程序 StackOverflow使用https://github.com/kevin-montrose/Jil,非常快。
Jsonapi是一个更高层次的关注。它不会改变json的序列化方式。它只是一种模式,约定,标准,模式,用于返回数据的形状/格式。它与选择哪个序列化程序没什么关系。
答案 1 :(得分:0)
经过多年不同序列化的经验并试图让他们应对各种类型的收集类型,我得出了一个结论:
通常最好将我的复杂对象转换为简单的DTO(数据传输对象),它们必须具有简单的公共属性(或字段),并且所有“集合”都包含数组。然后所有序列化程序都可以应对,包括我还不知道的序列化程序,但是必须移植到明年......
换句话说,编写更多代码,但至少它是我可以在睡眠中编写的代码! Automapper还可以帮助减少创建DTO所需的自定义代码量。