1.json序列化和反序列化
序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程;
反序列化,它將流轉(zhuǎn)換為對(duì)象;
1)Json.Net
推薦使用Json.Net類庫(kù),需要引入的命名空間;
序列化:JsonConvert.SerializeObject
反序列化:JsonConvert.DeserializeObject

2)使用JavaScriptSerializer類
使用JavaScriptSerializer方式需要引入的命名空間,這個(gè)在程序集System.Web.Extensions.dll.中;

3)使用DataContractJsonSerializer類
使用DataContractJsonSerializer方式需要引入的命名空間,在System.Runtime.Serialization.dll.中;

2.xml序列化和反序列化
1)序列化:
引入命名空間System.Xml.Serialization;
XmlRoot,XmlElement,XmlAttribute,XmlIgnore
數(shù)組的Xml序列化需要使用XmlArrayAttribute和XmlArrayItemAttribute;XmlArrayAttribute指定數(shù)組元素的Xml節(jié)點(diǎn)名,XmlArrayItemAttribute指定數(shù)組元素的Xml節(jié)點(diǎn)名;


2)反序列化:

3)自定義對(duì)象的XML序列化:
[XmlRoot("cat")] //根節(jié)點(diǎn)
? ? public class Cat
? ? {
? ? ? ? //定義Color屬性的序列化為cat節(jié)點(diǎn)的屬性
? ? ? ? [XmlAttribute("color")]
? ? ? ? public string Color { get; set; }
? ? ? ? //要求不序列化Speed屬性
? ? ? ? [XmlIgnore]
? ? ? ? public int Speed { get; set; }
? ? ? ? //設(shè)置Saying屬性序列化為Xml子元素
? ? ? ? [XmlElement("saying")]
? ? ? ? public string Saying { get; set; }
? ? }
4)對(duì)象數(shù)組的Xml序列化:
[XmlRoot("cats")]
????public?class?CatCollection
????{
????????[XmlArray("items"),XmlArrayItem("item")]
????????public?Cat[] Cats {?get;?set; }
????}
3.XML基本操作
引入命名空間 System.Xml
1)生成xml文件

2)遍歷xml文件的節(jié)點(diǎn)信息

3)修改xml文件的節(jié)點(diǎn)信息

4)向xml文件添加節(jié)點(diǎn)信息

5)刪除指定節(jié)點(diǎn)信息

總結(jié)XML基本方法:
? ? ? ? ? ? ?//所需要添加的命名空間
using System.Xml;
//初始化一個(gè)xml實(shí)例
XmlDocument xml=new XmlDocument();
//導(dǎo)入指定xml文件
xml.Load(“xml文件路徑path”);
//指定一個(gè)節(jié)點(diǎn)
XmlNode root=xml.SelectSingleNode("節(jié)點(diǎn)名稱");
//獲取節(jié)點(diǎn)下所有直接子節(jié)點(diǎn)
XmlNodeList childlist=root.ChildNodes;
//判斷該節(jié)點(diǎn)下是否有子節(jié)點(diǎn)
root.HasChildNodes;
//獲取同名同級(jí)節(jié)點(diǎn)集合
XmlNodeList nodelist=xml.SelectNodes("節(jié)點(diǎn)名稱");
//生成一個(gè)新節(jié)點(diǎn)
XmlElement node=xml.CreateElement("節(jié)點(diǎn)名稱");
//將節(jié)點(diǎn)加到指定節(jié)點(diǎn)下,作為其子節(jié)點(diǎn)
root.AppendChild(node);
//將節(jié)點(diǎn)加到指定節(jié)點(diǎn)下某個(gè)子節(jié)點(diǎn)前
root.InsertBefore(node,root.ChildeNodes[i]);
//為指定節(jié)點(diǎn)的新建屬性并賦值
node.SetAttribute("id","11111");
//為指定節(jié)點(diǎn)添加子節(jié)點(diǎn)
root.AppendChild(node);
//獲取指定節(jié)點(diǎn)的指定屬性值
string id=node.Attributes["id"].Value;
//獲取指定節(jié)點(diǎn)中的文本
string content=node.InnerText;
//保存XML文件
xml.Save(“xml文件存儲(chǔ)的路徑path”);