.NET Framework附带了System.Runtime.Serialization.Json.DataContractJsonSerializer和System.Web.Script.Serialization.JavaScriptSerializer,它们都是对JSON进行de/serialize.我如何知道何时选择其中一种类型?MSDN没有说清楚它们的相对优势是什么.
我们有几个消耗或发出JSON的项目,到目前为止为每个项目选择的类依赖于每个项目的主要开发者的意见.有些很简单,有两个有关于从JSON生成托管类型的复杂逻辑(类型没有紧密地映射到流)但是没有强调速度,需要速度.没有与WCF交互,至少截至目前.
虽然我对其他图书馆感兴趣,但我希望有人也可以回答我的问题.
似乎使用WCF的本机DataContractJsonSerializer或ASP.NET的本机JavaScript序列化程序无法将Entity Framework对象序列化为JSON.这是由于序列化器拒绝的引用计数问题.我也尝试过Json.NET,它也没有专门针对引用计数问题.
编辑: Json.NET现在可以序列化和反序列化实体框架实体.
我的对象是实体框架对象,它们被重载以执行其他业务功能(例如,身份验证等),我不想用平台特定的属性等来装饰这些类,因为我想呈现一个与平台无关的API .
我实际上曾在https://blog.programx.co.uk/2009/03/18/wcf-json-serialization-woes-and-a-solution/上写过关于我所经历的各个步骤的博客.
我错过了一些明显的事吗?
所以我有这笔交易
楷模
public class News
{
public News()
{
this.Created = DateTime.Now;
}
public int Id { get; set; }
public string Title { get; set; }
public string Preamble { get; set; }
public string Body { get; set; }
public DateTime Created { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
public int CategoryId { get; set; }
public int ImageId { get; set; }
public virtual Image …
Run Code Online (Sandbox Code Playgroud)