艾伟_转载:使用.NET框架自带的Json序列化类

简介: 主要用到的类:DataContractJsonSerializer,该类被申明在System.Runtime.Serialization.Json命名空间下,而System.Runtime.Serialization.
主要用到的类:DataContractJsonSerializer,该类被申明在System.Runtime.Serialization.Json命名空间下,而System.Runtime.Serialization.Json命名空间是被放置在System.ServiceModel.Web.dll程序集里,因此我们要用到DataContractJsonSerializer类,首先应添加对System.ServiceModel.Web的引用,然后添加System.Runtime.Serialization.Json命名空间,注意DataContractJsonSerializer序列化的方式是采用数据契约序列化,因此我们可以通过DataMemberAttribute来控制那些被序列化,那些不被序列化。
例如,我们这里有一个类:
 1  [DataContract]
 2  public   class  User
 3  {
 4       public  User() { }
 5      [DataMember]
 6       public   bool  IsMember {  get set ; }
 7      [DataMember]
 8       public   string  Name {  get set ; }
 9       public   int  Age {  get set ; }
10  }

我们现在在一个ashx文件里创建一个实例并将其序列化:

public   class  JsonWriter : IHttpHandler
{
    
public   void  ProcessRequest (HttpContext context)
    {
        DataContractJsonSerializer serializer 
=   new  DataContractJsonSerializer( typeof (User));
        User user 
=   new  User() { IsMember  =   true , Name  =   " Zhang Liang " , Age  =   24  };
        serializer.WriteObject(context.Response.OutputStream, user);
        context.Response.ContentType 
=   " text/plain " ;
    }
 
    
public   bool  IsReusable {
        
get  {
            
return   false ;
        }
    }
}

看输出结果:

{ " IsMember " : true , " Name " : " Zhang Liang " }

反序列化:

public   class  JsonWriter : IHttpHandler
{
    
public   void  ProcessRequest (HttpContext context)
    {
        DataContractJsonSerializer serializer 
=   new  DataContractJsonSerializer( typeof (User));
        User user 
=  serializer.ReadObject(context.Request.InputStream)  as  User;
        
// .使用User对象
        context.Response.Write( " OK " );
        context.Response.ContentType 
=   " text/plain " ;
    }
 
    
public   bool  IsReusable {
        
get  {
            
return   false ;
        }
    }
}
目录
相关文章
|
11天前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
27 1
|
1月前
|
JSON Go 数据格式
Golang语言结构体链式编程与JSON序列化
这篇文章是关于Go语言中结构体链式编程与JSON序列化的教程,详细介绍了JSON格式的基本概念、结构体的序列化与反序列化、结构体标签的使用以及如何实现链式编程。
24 4
|
9天前
|
JSON 数据格式
序列化 json和pickle
序列化 json和pickle
|
2月前
|
存储 JSON JavaScript
python序列化: json & pickle & shelve 模块
python序列化: json & pickle & shelve 模块
|
2月前
|
JSON Java 数据格式
【IO面试题 七】、 如果不用JSON工具,该如何实现对实体类的序列化?
除了JSON工具,实现实体类序列化可以采用Java原生序列化机制或第三方库如Protobuf、Thrift、Avro等。
|
2月前
|
Java
JDK序列化原理问题之Hessian框架不支持writeObject/readObject方法如何解决
JDK序列化原理问题之Hessian框架不支持writeObject/readObject方法如何解决
|
2月前
|
XML 存储 JSON
(十二)探索高性能通信与RPC框架基石:Json、ProtoBuf、Hessian序列化详解
如今这个分布式风靡的时代,网络通信技术,是每位技术人员必须掌握的技能,因为无论是哪种分布式技术,都离不开心跳、选举、节点感知、数据同步……等机制,而究其根本,这些技术的本质都是网络间的数据交互。正因如此,想要构建一个高性能的分布式组件/系统,不得不思考一个问题:怎么才能让数据传输的速度更快?
|
5月前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
82 0
|
5月前
|
存储 JSON JavaScript
Python中的JSON与Pickle模块:数据序列化和反序列化的利器
在Python编程中,数据的序列化和反序列化是经常遇到的操作。序列化是将数据结构或对象状态转换为可以存储或传输的格式的过程,而反序列化则是这个过程的逆操作,即将序列化的数据重新转换回原来的数据结构或对象状态。Python中的JSON和Pickle模块就是实现数据序列化和反序列化的强大工具。
|
5月前
|
JSON Java Maven
使用Jackson进行 JSON 序列化和反序列化
使用Jackson进行 JSON 序列化和反序列化
97 0