`
sailorlee
  • 浏览: 41606 次
  • 性别: Icon_minigender_1
  • 来自: 河北唐山
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用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官网

分享到:
评论

相关推荐

    Json.NET 1.3.1

    Ajax,将DataTable转换为Json对象,进行异步传输的工具类

    Spring.Net 1.3.1开源代码

    虽然功能强大,Spring.NET仍然是模块化的,允许单独使用其中的任一部分。在使用IoC容器来配置应用程序时,我们既可以用传统的ADO.NET来访问数据库,也可以使用Spring.NET的Hibernate集成代码或ADO.NET抽象层来访问...

    基于Spring[1].NET的技术架构及开发规范 - .pdf

    1 Spring.NET框架介绍 1.1 Spring.NET简介 1.2 Spring.NET体系结构图 1.3 Spring.NET相关概念 1.4 Spring.NET优势和适用场景 1.5 Spring.NET1.3.1所涉及的动态链接库 2 基于Spring.NET的系统架构 3 总体设计 3.1 ...

    《零基础学ASP.NET 2.0》第1章 认识ASP.NET 2.0 1

    1.2 第一个ASP.NET 2.0网站 2 1.2.1 创建网站 2 1.2.2 设计网站 3 1.2.3 通过预编译发布网站 5 1.3 ASP.NET 2.0必须具备的HTML知识 7 1.3.1 利用表单提交数据 8 1.3.2 使用表格进行布局 9 1.3.3 超级链接 10 1.3.4 ...

    pdfbox 1.3.1 dll .net版本

    这是pdfbox1.3.1的.net版本,通过ant+ikvm编译通过,自己没测过

    Malbers Inventory System v1.3.1

    Inventory插件为Malbers动物管理...保存和加载(基于JSON.Net,可选包含AES256加密(也可在库存系统之外使用!) 与AC/HAP的武器管理器完全集成,支持即将推出的新武器系统(一旦开发和发布!) 最大堆叠数的可堆叠项目

    ASP.NET 控件的使用

    第一部分 构建ASP.NET页面 第1章 ASP.NET Framework概览 2 1.1 ASP.NET和.NET Framework 5 1.1.1 框架类库 5 1.1.2 公共语言运行库 9 1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解...

    NDoc 1.3.1_中文_支持.NET2.0.rar

    NDoc 1.3.1,目前的最新版本,支持.net Framwork 2.0,中文+绿色版

    JSON组建_jabsorb-1.3.1.jar

    喜欢搞JSON开发的同胞可以拿去用! JSON采用完全独立于语言的文本格式,将与xml竞争!

    Spring.Net源码

    Spring.Net源代码,版本为Spring.NET-1.3.1,由于文件过大,我删了里面的example,不过这个应该不重要

    【优化方案】高中数学 第1章1.3.1第一课时知能优化训练 新人教A版必修1.doc

    【优化方案】高中数学 第1章1.3.1第一课时知能优化训练 新人教A版必修1.doc

    Visual.Basic.NET程序设计案例教程

    第1章 Visual Basic.NET概述 1.1 .NET框架简介 1.2 Visual Basic.NET的发展和特点 1.2.1 VB.NET的发展 1.2.2 VB.NET的特点 1.3 Visual Basic.NET的安装与启动 1.3.1 Visual Studi0.NET 2005的安装 1.3.2 VB.NET 2005...

    ASP.NET.4揭秘

    第一部分 构建asp.net页面 第1章 asp.net framework概览2 1.1 asp.net和.net framework5 1.1.1 框架类库5 1.1.2 公共语言运行库10 1.2 asp.net控件11 1.2.1 asp.net控件概览11 1.2.2 html控件12 1.2.3 理解和处理...

    nacos1.3.1

    nacos1.3.1。从github上下载太慢了。再csdn上做一个备份以便使用;nacos1.3.1;

    【优化方案】2020年高中数学 第一章1.3.1第1课时知能演练轻松闯关 新人教A版必修1.doc

    【优化方案】2020年高中数学 第一章1.3.1第1课时知能演练轻松闯关 新人教A版必修1.doc

    asp.net技术内幕(1)

    第一部分 使用ASP.NET Web表单 <br>第1章 建立ASP.NET页面 <br>1.1 ASP.NET和.NET框架 1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 ...

    NDoc 1.3.1 中文版

    (VB.NET 通过第三方插件如 VBCommenter 的支持,也可以生成 XML 文档。) NDoc 代码文档的样式包括 HTML Help 1 (即 *.CHM 格式),Microsoft Help 2 (即以形如 ms-help://... 的 URI 地址访问的文档),以及 MSDN 在线...

    开发工具 mybatis-spring-1.3.1

    开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-...

    JQuery1.3.1

    JQuery1.3.1

Global site tag (gtag.js) - Google Analytics