手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#实现json的序列化和反序列化实例代码
C#实现json的序列化和反序列化实例代码
摘要:在做asp.net和unity进行http通信的时候,当unity客户端发出表单请求的时候,我要将他要请求的数据以json的格式返回给客户端...

在做asp.net和unity进行http通信的时候,当unity客户端发出表单请求的时候,我要将他要请求的数据以json的格式返回给客户端,让客户端来解析。服务器端这一块就涉及到json的序列化和反序列化的问题。

两种方法都有例子,第一种是用泛型集合来存储的对象,然后将集合序列化一下;第二种是直接序列化的一个对象

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Web.Script.Serialization;

using System.Configuration;

using System.Runtime.Serialization.Json;

using System.Runtime.Serialization;

using System.IO;

using System.Text;

namespace WebApplication1

{

//方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化

[Serializable]

public class Person

{

private int id;

/// <summary>

/// id

/// </summary>

public int Id

{

get { return id; }

set { id = value; }

}

private string name;

/// <summary>

/// 姓名

/// </summary>

public string Name

{

get { return name; }

set { name = value; }

}

}

//方法二:引入 System.Runtime.Serialization.Json命名空间使用 DataContractJsonSerializer类实现序列化

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

[DataContract]

public class Person1

{

[IgnoreDataMember]

public int Id { get; set; }

[DataMember(Name = "name")]

public string Name { get; set; }

[DataMember(Name = "sex")]

public string Sex { get; set; }

}

public partial class _Default : System.Web.UI.Page

{

string constr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)

{

Person p1 = new Person();

p1.Id = 1;

p1.Name = "dxw";

Person p2 = new Person();

p2.Id = 2;

p2.Name = "wn";

List<Person> listperson = new List<Person>();

listperson.Add(p1);

listperson.Add(p2);

JavaScriptSerializer js = new JavaScriptSerializer();

//json序列化

string s = js.Serialize(listperson);

Response.Write(s);

//方法二

Person1 p11 = new Person1();

p11.Id = 1;

p11.Name = "hello";

p11.Sex = "男";

DataContractJsonSerializer json = new DataContractJsonSerializer(p11.GetType());

string szJson = "";

//序列化

using (MemoryStream stream = new MemoryStream())

{

json.WriteObject(stream, p11);

szJson = Encoding.UTF8.GetString(stream.ToArray());

Response.Write(szJson);

}

//反序列化

//using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))

//{

// DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People));

// Person1 _people = (Person1)serializer.ReadObject(ms);

//}

}

protected void Button1_Click(object sender, EventArgs e)

{

Response.Write(constr);

}

}

【C#实现json的序列化和反序列化实例代码】相关文章:

C# 实现阶乘 (递归,非递归) 实现代码

C#计算两个文件的相对目录算法的实例代码

c#数据的序列化和反序列化(推荐版)

用C#获取硬盘序列号,CPU序列号,网卡MAC地址的源码

C#委托初级使用的实例代码

C#中通过API实现的打印类 实例代码

C#实现的几种委托方式介绍

C#生成注册码的实例代码

C#实现的json序列化和反序列化代码实例

C#实现路由器断开连接,更改公网ip的实例代码

精品推荐
分类导航