使用Json.Net 1.3.1的第一个演示

首先,要明白什么是JSON,引用json.org的一段话:

JSON(JavaScript Object Notation:JavaScript对象表示法) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON有两种结构:

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
具体的JSON介绍请看:http://www.json.org/json-zh.html

在.net环境下,我们使用Json.net来实现JSON数据的序列化和反序列化。

JavaScriptConvert.SerializeObject(object value),序列化,它有个重载方法JavaScriptConvert.SerializeObject(object value, params JsonConverter[] converters)。
JavaScriptConvert.DeserializeObject(string value, Type type),反序列化,它有个重载方法JavaScriptConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)
这两个方法可以实现基本的序列化和反序列化要求,请看下面的Demo

public   class  Person  
{  
        
private   string  name;  
        
public   string  Name  
        {  
             
get  {  return  name; }  
             
set  { name  =  value; }  
         }  
  
        
private  DateTime birthday;  
        
public  DateTime Birthday  
        {  
             
get  {  return  birthday; }  
             
set  { birthday  =  value; }  
         }  
}

 

using  Newtonsoft.Json;  
  
namespace  JSONTest  
{  
    
public   partial   class  _Default : System.Web.UI.Page  
    {  
        
protected   void  Page_Load( object  sender, EventArgs e)  
        {  
             Person person 
=   new  Person();  
  
             person.Name 
=   " Moozi.Net " ;  
             person.Birthday 
=   new  DateTime( 1986 2 22 );  
            
string  strSerializeJSON  =  JavaScriptConvert.SerializeObject(person);  
             Response.Write(strSerializeJSON);  
         }  
     }  
}

得到下面的数据:

{ " Name " : " Moozi.Net " , " Birthday " : new  Date( 509414400000 )}

修改一下代码反序列化:

using  Newtonsoft.Json;  
  
namespace  JSONTest  
{  
    
public   partial   class  _Default : System.Web.UI.Page  
    {  
        
protected   void  Page_Load( object  sender, EventArgs e)  
        {  
             Person person 
=   new  Person();  
  
             person.Name 
=   " Moozi.Net " ;  
             person.Birthday 
=   new  DateTime( 1986 2 22 );  
            
string  strSerializeJSON  =  JavaScriptConvert.SerializeObject(person);              
             Person personDeserialize 
=  (Person)JavaScriptConvert.DeserializeObject(  
                 strSerializeJSON, 
typeof (Person));  
  
             Response.Write(personDeserialize.Name);  
         }  
     }  
}


浏览器显示:

Moozi.Net

在.Net2.0环境下,我们只能用Json.NET 1.3.1,而.Net3.5可以使用Json.NET 3.0。

需要更多帮助请访问Json.NET官网


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值