javascript

位置:IT落伍者 >> javascript >> 浏览文章

JSON序列化与反序列化


发布日期:2018年02月27日
 
JSON序列化与反序列化
以下是对JSON序列化与反序列化进行了详细的分析介绍需要的朋友可以过来参考下

方法一引入SystemWebScriptSerialization命名空间使用 JavaScriptSerializer类实现简单的序列化序列化类Personnel

复制代码 代码如下:
public class Personnel
{
public int Id { get; set; }
public string Name { get; set; }
}


执行序列化反序列化

复制代码 代码如下:
protected void Page_Load(object sender EventArgs e)
{
Personnel personnel = new Personnel();
personnelId = ;
personnelName = "小白";

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
//执行序列化
string r = jsonSerializerSerialize(personnel);

//执行反序列化
Personnel _Personnel = jsonSerializerDeserialize<Personnel>(r);
}


r输出结果{"Id":"Name":"小白"}
可以使用 ScriptIgnore属性标记不序列化公共属性或公共字段

复制代码 代码如下:
public class Personnel
{
[ScriptIgnore]
public int Id { get; set; }
public string Name { get; set; }
}


r输出结果{"Name":"小白"}

方法二引入 SystemRuntimeSerializationJson命名空间使用 DataContractJsonSerializer类实现序列化

序列化类People

复制代码 代码如下:
public class People
{
public int Id { get; set; }
public string Name { get; set; }
}


执行序列化反序列化

复制代码 代码如下:
protected void Page_Load(object sender EventArgs e)
{
People people = new People();
peopleId = ;
peopleName = "小白";


DataContractJsonSerializer json = new DataContractJsonSerializer(peopleGetType());
string szJson = "";
//序列化
using (MemoryStream stream = new MemoryStream())
{
jsonWriteObject(stream people);
szJson = EncodingUTFGetString(streamToArray());
}
//反序列化
using (MemoryStream ms = new MemoryStream(EncodingUTFGetBytes(szJson)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People));
People _people = (People)serializerReadObject(ms);
}
}


szJson输出结果{"Id":"Name":"小白"}

可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化DataMember:定义序列化属性参数使用DataMember属性标记字段必须使用DataContract标记类 否则DataMember标记不起作用

复制代码 代码如下:
[DataContract]
public class People
{
[DataMember(Name = "id")]
public int Id { get; set; }
[IgnoreDataMember]
public string Name { get; set; }
}


输出结果: {"id":}

               

上一篇:服务端拼接json数据格式的正确写法(Append方式)

下一篇:js返回字符串中某个字符的出现次数