C# 實現物件轉JSON序列化2種方法(JavaScriptSerializer,DataContractJsonSerializer)
阿新 • • 發佈:2020-12-18
技術標籤:C#
1 JavaScriptSerializer
無須標記就可以進行序列化。
//物件無須標記也可以進行轉Json序列化 public static string GetUnknownJson(object value){ if (value == null) return null; JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = Int32.MaxValue; return serializer.Serialize(value); }
2DataContractJsonSerializer
使用DataContractJsonSerializer物件進行序列化時,被序列化的物件必須帶有[DataContract, Serializable]標記,其成員屬性必須帶有[DataMember]標記。
namespace Com{ [DataContract, Serializable] public class ThisFileInfo{ [DataMember] public string Path { get; set; } [DataMember] public string FileName { get; set; } [DataMember] public DateTime CreateTime { get; set; } } }
//物件必須有標記也可以進行轉Json序列化 public static string GetJson<T>(T obj){ if (obj == null) return null; DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType()); using (MemoryStream stream = new MemoryStream()){ json.WriteObject(stream, obj); return Encoding.UTF8.GetString(stream.ToArray(), 0, stream.ToArray().Length); } }