一、

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据。您无法访问序列化程序的此实例。但是,此类公开了公共 API。因此,当您希望在托管代码中使用 JavaScript 对象符号 (JSON) 时可以使用此类。

若要序列化对象,请使用 Serialize 方法。若要反序列化 JSON 字符串,请使用 Deserialize 或 DeserializeObject 方法。若要序列化和反序列化 JavaScriptSerializer 本身不支持的类型,请使用 JavaScriptConverter 类来实现自定义转换器。然后,使用 RegisterConverters 方法注册转换器。
托管类型和 JSON 之间的映射

下表显示序列化进程中托管类型和 JSON 之间的映射。JavaScriptSerializer 本身支持这些托管类型。将 JSON 字符串反序列化为托管类型时,采用相同的映射。但是,反序列化可能是非对称的,并非所有可序列化的托管类型都可以从 JSON 反序列化得到。

二、

通过JavaScriptSerializer来实现。它的名字空间为:System.Web.Script.Serialization

如果要使用它,还须添加

System.Web.Extensions库文件引用

参考实体类:Customer

public class Customer

{

public int Unid { get; set; }

public string CustomerName { get; set; }

}

类JavaScriptSerializer描述:为启用 AFAX 的应用程序提供序列化和反序列化功能。

(一) 序列化

方法:public string Serialize(Object obj),用于将对象转换为 JSON 字符串

public string ScriptSerialize(Customer customer)

{

JavaScriptSerializer js = new JavaScriptSerializer();

return js.Serialize(customer);

}

测试:

Customer cc = new Customer { Unid = 1, CustomerName = "John" };

string strJson = ScriptSerialize(cc);

Console.WriteLine(strJson);

(二)反序列化

public Customer ScriptDeserialize(string strJson)

{

JavaScriptSerializer js = new JavaScriptSerializer();

return js.Deserialize<Customer>(strJson);

}

通过Deserialize<T>方法来实现。

测试:

Customer c1 = ScriptDeserialize(strJson);

Console.WriteLine(c1.Unid + " " + c1.CustomerName);

(三)方法泛型

public string ScriptSerialize<T>(T t)

{

JavaScriptSerializer js = new JavaScriptSerializer();

return js.Serialize(t);

}

public T ScriptDeserialize<T>(string strJson)

{

JavaScriptSerializer js = new JavaScriptSerializer();

return js.Deserialize<T>(strJson);

}

测试:

Customer cc = new Customer { Unid = 1, CustomerName = "John" };

string strJson = ScriptSerialize<Customer>(cc);

Console.WriteLine(strJson);

Customer c1 = ScriptDeserialize<Customer>(strJson);

Console.WriteLine(c1.Unid + " " + c1.CustomerName);

JSON 序列化和反序列化——JavaScriptSerializer实现的更多相关文章

  1. C# JSON 序列化和反序列化——JavaScriptSerializer实现

    一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...

  2. JSON 序列化和反序列化——JavaScriptSerializer实现

    一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...

  3. Asp.Net中JSON的序列化和反序列化-----JavaScriptSerializer ,加上自己工作心得

    在工作中和手机通信用到web服务和javascriptSerializer,返回json数据,供手机端调用,一开始返回的数据是一大堆,比如 [{"word_picture9":&q ...

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

    有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...

  5. Net中JSON序列化和反序列化处理(日期时间特殊处理)

    0  缘由 笔者最近在web api端使用Json.Net进行序列化处理,而在调用端使用DataContractSerializer进行反序列化,遇到日期时间处理反序列化不成功[备注:笔者使用Net ...

  6. 在net中json序列化与反序列化

    准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则: 数据在键值对中 数据由逗号分隔 花括 ...

  7. 转:Json序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介 ...

  8. 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变

    在net中json序列化与反序列化   准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...

  9. DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...

随机推荐

  1. generator class 的含义

    native有天生的,本土的,也就是说生来就有的, 那也就是说自动生成,不需要人工来帮忙或者管控的. 而assigned是指指定的,分配的, 如果你不赋予他甚麼东西,那麼他是不能实现的. 需要人工,自 ...

  2. Android长时间后台运行Service

         项目需要在后台获取GPS经纬度.当用户对手机有一段时间没有操作后,屏幕(Screen)将从高亮(Bright)变为暗淡(Dim),如果再过段时间没操作, 屏幕(Screen)将又由暗淡(Di ...

  3. web测试方法总结

    链接地址:http://www.cnblogs.com/Jessy/p/3539638.html 一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~ ...

  4. dictionaryWithContentsOfFile:方法

    dictionaryWithContentsOfFile:方法的功能是创建一个字典,将字典中的内容设置为指定文件中的所有内容, 语法:(id)dictionaryWithContentsOffilE. ...

  5. win10U盘 安装

    转载自网络: 首先,现在WIN10镜像文件 1.地址和具体信息如下: 下载提示:请用迅雷等支持P2P的下载工具下载 Win10 TH2正式版微软官方原版ISO系统镜像下载(2016年4月更新版): W ...

  6. Hibernate+jsp+struts+spring做增删该查,

    同样还是web项目,这里只做了一张表,做一个测试,例子.主要是建Hibernate 的时候要非常注意,有时间了整理一下建Hiberbnate 的时候需要注意的事项 这里我是建了5个包,其实只要四个就好 ...

  7. HTML5+CSS3学习笔记(一)

    HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就是HTML ...

  8. js-正则表达式的替换

    正则表达式替换使用的是replace()方法.Replace()方法是用一些字符途欢另一些字符 语法:stringObject.replace(regexp,replacement) regexp 必 ...

  9. MFC修改初始窗口大小和窗口名字禁止窗口最大,最小化

    2,在里面就可以修改初始窗口大小和窗口名字 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWnd::PreCrea ...

  10. bash快捷建

    bash快捷建 ctrl键组合ctrl+a:光标移到行首.ctrl+b:光标左移一个字母ctrl+c:杀死当前进程.ctrl+d:退出当前 Shell.ctrl+e:光标移到行尾.ctrl+h:删除光 ...