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字符串反序列化为类型实例。DataContractJsonSerializerSystem.Runtime.Serialization.Json命名空间下,.NETFramework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NETFramework 4System.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
原创粉丝点击