将一个类序列化成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#中类的字段或属性不被序列化成JSON或XML全部内容,希望文章能够帮你解决C#中类的字段或属性不被序列化成JSON或XML所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)