将一个类序列化成JSON或XML时,如果某个字段或属性不想被序列化,则可以使用以下Attribute:

1、[Newtonsoft.Json.JsonIgnore]特性:使用Newtonsoft.Json序列化时字段不会被序列化。

2、[System.Web.Script.Serialization.ScriptIgnore]特性:使用JavaScriptSerializer序列化时字段不会被序列化。

[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 = ;

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(user);

Console.WriteLine(newtonStr);

Console.WriteLine(serializedStr);

Console.WriteLine(xmlStr);

System.Console.ReadLine();

}

//XML序列化方法

public static string XmlSerialize(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();

}

}

}

///

/// 用户信息类

///

public class UserInfo

{

///

/// 名称

///

public string Name { get; set; }

///

/// 年龄

///

public int Age { get; set; }

///

/// 电子邮件

///

[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序列化结果:

http://www.w3.org/2001/XMLSchema">

张三

25

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: