1.json序列化和反序列化
序列化是将对象状态转换为可保持或传输的格式的过程;
反序列化,它将流转换为对象;
1)Json.Net
推荐使用Json.Net类库,需要引入的命名空间;
序列化:JsonConvert.SerializeObject
反序列化:JsonConvert.DeserializeObject
2)使用JavaScriptSerializer类
使用JavaScriptSerializer方式需要引入的命名空间,这个在程序集System.Web.Extensions.dll.中;
3)使用DataContractJsonSerializer类
使用DataContractJsonSerializer方式需要引入的命名空间,在System.Runtime.Serialization.dll.中;
2.xml序列化和反序列化
1)序列化:
引入命名空间System.Xml.Serialization;
XmlRoot,XmlElement,XmlAttribute,XmlIgnore
数组的Xml序列化需要使用XmlArrayAttribute和XmlArrayItemAttribute;XmlArrayAttribute指定数组元素的Xml节点名,XmlArrayItemAttribute指定数组元素的Xml节点名;
2)反序列化:
3)自定义对象的XML序列化:
[XmlRoot("cat")] //根节点
public class Cat
{
//定义Color属性的序列化为cat节点的属性
[XmlAttribute("color")]
public string Color { get; set; }
//要求不序列化Speed属性
[XmlIgnore]
public int Speed { get; set; }
//设置Saying属性序列化为Xml子元素
[XmlElement("saying")]
public string Saying { get; set; }
}
4)对象数组的Xml序列化:
[XmlRoot("cats")]
public class CatCollection
{
[XmlArray("items"),XmlArrayItem("item")]
public Cat[] Cats { get; set; }
}
3.XML基本操作
引入命名空间 System.Xml
1)生成xml文件
2)遍历xml文件的节点信息
3)修改xml文件的节点信息
4)向xml文件添加节点信息
5)删除指定节点信息
总结XML基本方法:
//所需要添加的命名空间
using System.Xml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(“xml文件路径path”);
//指定一个节点
XmlNode root=xml.SelectSingleNode("节点名称");
//获取节点下所有直接子节点
XmlNodeList childlist=root.ChildNodes;
//判断该节点下是否有子节点
root.HasChildNodes;
//获取同名同级节点集合
XmlNodeList nodelist=xml.SelectNodes("节点名称");
//生成一个新节点
XmlElement node=xml.CreateElement("节点名称");
//将节点加到指定节点下,作为其子节点
root.AppendChild(node);
//将节点加到指定节点下某个子节点前
root.InsertBefore(node,root.ChildeNodes[i]);
//为指定节点的新建属性并赋值
node.SetAttribute("id","11111");
//为指定节点添加子节点
root.AppendChild(node);
//获取指定节点的指定属性值
string id=node.Attributes["id"].Value;
//获取指定节点中的文本
string content=node.InnerText;
//保存XML文件
xml.Save(“xml文件存储的路径path”);