C#实现JSON序列化与反序列化介绍

方法一:引入System.Web.Script.Serialization命名空间使用 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();

personnel.Id = 1;

personnel.Name = "小白";

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();

//执行序列化

string r1 = jsonSerializer.Serialize(personnel);

//执行反序列化

Personnel _Personnel = jsonSerializer.Deserialize<Personnel>(r1);

}

r1输出结果:{"Id":1,"Name":"小白"}

可以使用 ScriptIgnore属性标记不序列化公共属性或公共字段。

public class Personnel

{

[ScriptIgnore]

public int Id { get; set; }

public string Name { get; set; }

}

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

方法二:引入 System.Runtime.Serialization.Json命名空间使用 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();

people.Id = 1;

people.Name = "小白";

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

string szJson = "";

//序列化

using (MemoryStream stream = new MemoryStream())

{

json.WriteObject(stream, people);

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

}

//反序列化

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

{

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

People _people = (People)serializer.ReadObject(ms);

}

}

szJson输出结果:{"Id":1,"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":1}

时间: 2024-11-09 10:25:39

C#实现JSON序列化与反序列化介绍的相关文章

json序列化和反序列化案例

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 序列化简单理解为:把集合.数组等里的数据变成字符串 反序列化简单理解为:把字符串还原成集合,数组等对象. 1.对JSON数据进行序列化和反序列化 方法一: 可以使用DataContractJsonSeria

Java下用Jackson进行JSON序列化和反序列化(转)

Java下常见的Json类库有Gson.JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的JSON操作方法. 一.准备工作 首先去官网下载Jackson工具包,下载地址http://wiki.fasterxml.com/JacksonDownload.Jackson有1.x系列和2.x系列,截止目前2.x系列的最新版本是2.9.0,2.x系列有3个jar包需要下载: jackson-cor

转:Json序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集 合.字典的处理.     一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是“名值对”的集合.结构由大括号'{}',

迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库。

原文:迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库. Swifter.Json 这是迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库. Github : https://github.com/Dogwei/Swifter.Json 之所以说强大,因为这些功能其他框架没有! (1): 支持深度复杂的对象结构且易于使用. (2): 用 $ref 表示重复和循环引用的序列化和反序列化. (3): 目前唯一支持 ref 属性的 JSON 库.

DotNet的JSON序列化与反序列化

JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有两种表示结构,对象和数组,JSON 数据的书写格式是:名称/值对. 在vs解决方案中以前采用xml树的形式,组织项目的结构.在新的.net core中,项目的解决方案采用json作为项目的结构说明. 在.net的前后台数据交互中,采用序列化对象为json,前端ajax接受传输数据,反序列化为对象,在

JSON序列化和反序列化

1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg: A a=new A(); a.Name="Elain00"; a.Hobby="eat eat"; string jsonStr=JsonConvert.SerializeObject(a); 2.JSON反序列化 string jsonstr = "jsonString"; Class model = JsonC

C#中JSON序列化和反序列化

json序列化和反序列化帮助类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.IO; using System.Text.RegularExpressions; using System.We

newtonsoft.json 序列化,反序列化

public class Book { public string BookID { get; set; } public DateTime PublishDate { get; set; } public decimal Price { get; set; } public override string ToString() { return "ID:" + BookID + "; Date:" + PublishDate.ToShortDateString()

C# 二进制、Xml、Json序列化和反序列化

昨天利用业余时间对比了下C#中三种序列化方式(二进制.Xml.Json),综合来看json方式生成的字节数组长度最短,但当你需要序列化的对象中包括byte[]类型,且其长度较长时,序列化后,xml方式的长度较json方式更短.xml方式中对byte[]做了base64转换. 最后综合三种情况,写了一个基于泛型的通用类来完成序列化和反序列化操作,仅供参考,若有什么错误之处,还请指教. using System; using System.Collections.Generic; using Sys