C#实现json的序列化和反序列化实例代码_C#教程-查字典教程网
C#实现json的序列化和反序列化实例代码
C#实现json的序列化和反序列化实例代码
发布时间:2016-12-28 来源:查字典编辑
摘要:在做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#教程学习
    热门C#教程学习
    编程开发子分类