usingSystem;
usingSystem.Collections.Generic;
usingSystem.Web.Script.Serialization;
usingSystem.Configuration;
usingSystem.Runtime.Serialization.Json;
usingSystem.Runtime.Serialization;
usingSystem.IO;
usingSystem.Text;
namespaceWebApplication1
{
//方法一:引入System.Web.Script.Serialization命名空间使用JavaScriptSerializer类实现简单的序列化
[Serializable]
publicclassPerson
{
privateintid;
///<summary>
///id
///</summary>
publicintId
{
get{returnid;}
set{id=value;}
}
privatestringname;
///<summary>
///姓名
///</summary>
publicstringName
{
get{returnname;}
set{name=value;}
}
}
//方法二:引入System.Runtime.Serialization.Json命名空间使用DataContractJsonSerializer类实现序列化
//可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化,DataMember:定义序列化属性参数,使用DataMember属性标记字段必须使用DataContract标记类否则DataMember标记不起作用。
[DataContract]
publicclassPerson1
{
[IgnoreDataMember]
publicintId{get;set;}
[DataMember(Name="name")]
publicstringName{get;set;}
[DataMember(Name="sex")]
publicstringSex{get;set;}
}
publicpartialclass_Default:System.Web.UI.Page
{
stringconstr=ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
protectedvoidPage_Load(objectsender,EventArgse)
{
Personp1=newPerson();
p1.Id=1;
p1.Name="dxw";
Personp2=newPerson();
p2.Id=2;
p2.Name="wn";
List<Person>listperson=newList<Person>();
listperson.Add(p1);
listperson.Add(p2);
JavaScriptSerializerjs=newJavaScriptSerializer();
//json序列化
strings=js.Serialize(listperson);
Response.Write(s);
//方法二
Person1p11=newPerson1();
p11.Id=1;
p11.Name="hello";
p11.Sex="男";
DataContractJsonSerializerjson=newDataContractJsonSerializer(p11.GetType());
stringszJson="";
//序列化
using(MemoryStreamstream=newMemoryStream())
{
json.WriteObject(stream,p11);
szJson=Encoding.UTF8.GetString(stream.ToArray());
Response.Write(szJson);
}
//反序列化
//using(MemoryStreamms=newMemoryStream(Encoding.UTF8.GetBytes(szJson)))
//{
//DataContractJsonSerializerserializer=newDataContractJsonSerializer(typeof(People));
//Person1_people=(Person1)serializer.ReadObject(ms);
//}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Write(constr);
}
}