JSON序列化与反序列化
来源:互联网 发布:新疆世纪矩阵合法吗 编辑:程序博客网 时间:2024/04/28 21:31
项目中使用JSON越发频繁,JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式。在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间、集合、字典的处理。
JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。JSON是“名值对”的集合。结构由大括号'{}',中括号'[]',逗号',',冒号':',双引号'“”'组成,包含的数据类型有Object,Number,Boolean,String,Array, NULL等。
可以使用DataContractJsonSerializer类将类型实例序列化为JSON字符串,并将JSON字符串反序列化为类型实例。DataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NETFramework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NETFramework 4在System.Runtime.Serialization中。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Web;using System.Runtime.Serialization.Json;using System.IO;public class JsonHelper{ //序列化 public static string JsonSerializer<T>(T t) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(); ser.WriteObject(ms, t); string jsonString = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return jsonString; } //反序列化 public static T JsonDeserialize<T>(string jsonString) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); T obj = (T)ser.ReadObject(ms); return obj; } public class Person{ public string name { get; set; } public int Age { get; set; }}}
ASP.NET中的JSON序列化和反序列化还可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空间下,需引用System.Web.Extensions.dll.也可以使用JSON.NET.
0 0
- Json序列化 与反序列化
- JSON序列化与反序列化
- JSON序列化与反序列化
- Json序列化与反序列化
- Json序列化与反序列化
- JSON序列化与反序列化
- JSON序列化与反序列化
- JSON序列化与反序列化
- JSON序列化 与反序列化
- JSON序列化与反序列化
- JSON序列化与反序列化
- JSON序列化与反序列
- 序列化与反序列化,及Json序列化反序列化
- POJO与JSON的序列化与反序列化
- JSON序列化、JSON反序列化
- ExtJs JsonHelper Json序列化与反序列化
- C#实现JSON序列化与反序列化介绍
- C# Json序列化与反序列化
- 机器学习算法笔记之8:聚类算法
- 富文本编辑器CKeditor
- eclipse中配置drools6.5环境
- 二叉树感想
- centos 搭建opencv-3.2.0开发环境 测试代码
- JSON序列化与反序列化
- MyEclipse过期生成自己的注册码
- MAVEN安装及eclipse配置maven
- 拉格朗日插值对图片单色素大规模处理
- struts2入门案例
- python学习笔记(2)
- TCP/IP协议与UDP的区别
- C语言中extern的用法
- 1002. 写出这个数 (20)