C#中类的字段或属性不被序列化成JSON或XML
将一个类序列化成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 = "[email?protected]"; //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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – 为什么返回时不能将指针自动转换为unique_p
- ruby-on-rails – Rails 3.1和jQuery手机:在考虑
- NoSQL:如何根据lat&long检索’house’?
- ruby-on-rails – Ruby on Rails:如何检查文件是
- c# – 在Visual Studio中管理多个重叠控件
- FlashBack Recorder 5.7.0.3607汇编超精简绿色破
- ruby-on-rails – 如何挂钩以破坏属于另一个模型
- 总结C#网络编程中对于Cookie的设定要点
- oracle – 当我尝试将列从VARCHAR2(200)修改为VA
- C++实现自底向上的归并排序算法