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

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

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于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数据的序列化和反序列化。

  1. JavaScriptConvert.SerializeObject(object value),序列化,它有个重载方法JavaScriptConvert.SerializeObject(object value, params JsonConverter[] converters)。
  2. JavaScriptConvert.DeserializeObject(string value, Type type),反序列化,它有个重载方法JavaScriptConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)

这两个方法可以实现基本的序列化和反序列化要求,请看下面的Demo
[code="csharp"]
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; }
    }
}
[/code]
[code="csharp"]
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); 
        } 
    } 
}
[/code]
得到下面的数据:
[code="js"]
{"Name":"Moozi.Net","Birthday":new Date(509414400000)}
[/code]
修改一下代码反序列化:
[code="csharp"]
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); 
        } 
    } 
}
[/code]
浏览器显示:
[code="html"]
Moozi.Net
[/code]
在.Net2.0环境下,我们只能用Json.NET 1.3.1,而.Net3.5可以使用Json.NET 3.0。

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

你可能感兴趣的:(JavaScript,.net,json,UI,python)