JavaScriptSerializer and DataContractJsonSerializer are different.
JavaScriptSerializer
Namespace: using System. web. script. serialization; you do not need to manually add references. Serialization of the Dictionary type is not supported. You do not need to manually set the Name of each field. For example: [Serializable] public class Student {public string Name {get; set;} public int Age {get; set;} public List <Course> course {get; set ;}} DataContractJsonSerializer namespace: using System. runtime. serialization. json; you need to manually add reference System. runtime. serialization .; supports serialization of the Dictionary type. You need to manually set the Name of each field, for example, [DataContract (Name = "student")] public class Student {[DataMember (Name = "Name")] public string Name {get; set;} [DataMember (Name = "Age")] public int Age {get; set;} [DataMember (Name = "Course")] public List <Course> course {get; set ;}}