將一個類序列化成JSON或XML時,如果某個字段或屬性不想被序列化,則可以使用以下Attribute:
1、[Newtonsoft.Json.JsonIgnore]特性:使用Newtonsoft.Json序列化時字段不會被序列化。
2、[System.Web.Script.Serialization.ScriptIgnore]特性:使用JavaScriptSerializer序列化時字段不會被序列化。
3、[System.Xml.Serialization.XmlIgnore]特性:字段不會被序列化成XML。
using Newtonsoft.Json; using System; using System.IO; using System.Web.Script.Serialization; using System.Xml.Serialization; namespace QRCoderTest { class Program { static void Main(string[] args) { //創建用戶信息 UserInfo user = new UserInfo(); user.Name = "張三"; user.Age = 25; user.Email = "zhangsan@qq.com"; //1、使用Newtonsoft轉JSON string newtonStr = JsonConvert.SerializeObject(user); //2、使用JavaScriptSerializer類轉JSON JavaScriptSerializer serializer = new JavaScriptSerializer(); string serializedStr = serializer.Serialize(user); //3、XML序列化 string xmlStr = XmlSerialize<UserInfo>(user); Console.WriteLine(newtonStr); Console.WriteLine(serializedStr); Console.WriteLine(xmlStr); System.Console.ReadLine(); } //XML序列化方法 public static string XmlSerialize<T>(T obj) { using (StringWriter sw = new StringWriter()) { Type t = obj.GetType(); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(sw, obj); sw.Close(); return sw.ToString(); } } } /// <summary> /// 用戶信息類 /// </summary> public class UserInfo { /// <summary> /// 名稱 /// </summary> public string Name { get; set; } /// <summary> /// 年齡 /// </summary> public int Age { get; set; } /// <summary> /// 電子郵件 /// </summary> [Newtonsoft.Json.JsonIgnore] [System.Web.Script.Serialization.ScriptIgnore] [System.Xml.Serialization.XmlIgnore] public string Email { get; set; } } }
執行結果:
1、使用Newtonsoft轉JSON輸出結果:{"Name":"張三","Age":25}
2、使用JavaScriptSerializer類轉JSON輸出結果:{"Name":"張三","Age":25}
3、XML序列化結果:
<?xml version="1.0" encoding="utf-16"?>
<UserInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>張三</Name>
<Age>25</Age>
</UserInfo>