`
sailorlee
  • 浏览: 42712 次
  • 性别: 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

    总结来说,Json.NET 1.3.1 是一个强大的JSON库,它简化了在 .NET 环境中处理JSON数据的过程,特别是在与Ajax结合使用时,可以有效提升Web应用的性能和用户体验。通过学习和使用Json.NET,开发者可以更好地理解和操作...

    Json.NET源码

    Json.NET是一款广泛使用的JSON库,由James Newton-King 开发,它为.NET Framework提供了一种高效、灵活且功能丰富的JSON序列化和反序列化的解决方案。标题提到的"Json.NET源码"指的是Json.NET的源代码,包括针对...

    Spring.Net 1.3.1开源代码

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

    pdfbox 1.3.1 dll .net版本

    在.NET环境中,如果你需要与PDF交互,通常会寻找兼容的库,这个"pdfbox 1.3.1 dll .net版本"就是专门为.NET开发者提供的一个解决方案。 这个版本的PDFBox是通过Ant(一个Java的构建工具)和IKVM(一个.NET运行时...

    《零基础学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 ...

    NETJson全版本资源包

    .NET JSON全版本资源包是一个集合了多种.NET框架版本的C# JSON解析库,适用于不同的.NET开发环境和项目需求。这个资源包包含了从.NET 2.0到.NET 4.5,以及Portable和WinRT等不同平台的支持,确保了在各种.NET环境...

    Malbers Inventory System v1.3.1

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

    NDoc 1.3.1(支持.NET2.0 ) + htmlhelpworkshop +使用说明

    NDoc 是一款针对.NET框架的文档生成工具,版本1.3.1是它的一个较旧但仍然被一些开发者使用的版本,特别强调了对.NET 2.0的支持。NDoc的主要功能是自动生成高质量的API文档,它通过解析.NET程序集(如DLL或EXE)中的...

    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竞争!

    json-lib-2.3-jdk15.jar包和prototype.js及jquery-1.3.1.js

    在压缩包中的"json01"文件,可能是示例JSON数据或者是一个包含关于JSON使用教程的文档。为了更好地理解它的内容,你需要解压并查看文件的具体信息。无论是哪种情况,这个文件都能帮助你进一步了解如何在实际项目中...

    django1.3.1

    Django 1.3.1 是一个基于 Python 的著名开源 Web 框架的重要版本,它专注于可维护性和高效率。这个版本适用于 Python 2.6.5,并且集成了 MySQL 数据库支持的驱动程序 MySQL-python-1.2.3.win32-py2.6。在本文中,...

    Helios 1.3.1 录制全景视频 VR

    Unity 是一个广泛使用的跨平台游戏开发引擎,它支持多种类型的项目,包括2D、3D游戏以及VR应用。Helios 1.3.1 作为Unity的一个扩展,使得开发者能够轻松地在Unity环境中录制全景视频,而无需复杂的外部软件或繁琐的...

    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...

    微信开发用到的jar包:json 解析,dom4j-1.6.1.jar,xstream-1.3.1.jar

    `dom4j-1.6.1.jar`、`json-lib-2.4-jdk15.jar`和`xstream-1.3.1.jar`都是这样的第三方库,它们包含了实现特定功能的Java类。在微信开发中,将这些jar包添加到项目的类路径中,就可以直接使用其中的功能,而无需关心...

    gdal1.3.1开源代码

    GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据抽象库,它提供了对多种栅格地理数据格式的支持。GDAL不仅用于地形处理,还广泛应用于遥感、地图制图、地理信息系统(GIS)等领域。这个强大的...

Global site tag (gtag.js) - Google Analytics