首先,要明白什么是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数据的序列化和反序列化。
- 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
[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 环境中处理JSON数据的过程,特别是在与Ajax结合使用时,可以有效提升Web应用的性能和用户体验。通过学习和使用Json.NET,开发者可以更好地理解和操作...
Json.NET是一款广泛使用的JSON库,由James Newton-King 开发,它为.NET Framework提供了一种高效、灵活且功能丰富的JSON序列化和反序列化的解决方案。标题提到的"Json.NET源码"指的是Json.NET的源代码,包括针对...
虽然功能强大,Spring.NET仍然是模块化的,允许单独使用其中的任一部分。在使用IoC容器来配置应用程序时,我们既可以用传统的ADO.NET来访问数据库,也可以使用Spring.NET的Hibernate集成代码或ADO.NET抽象层来访问...
在.NET环境中,如果你需要与PDF交互,通常会寻找兼容的库,这个"pdfbox 1.3.1 dll .net版本"就是专门为.NET开发者提供的一个解决方案。 这个版本的PDFBox是通过Ant(一个Java的构建工具)和IKVM(一个.NET运行时...
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 ...
.NET JSON全版本资源包是一个集合了多种.NET框架版本的C# JSON解析库,适用于不同的.NET开发环境和项目需求。这个资源包包含了从.NET 2.0到.NET 4.5,以及Portable和WinRT等不同平台的支持,确保了在各种.NET环境...
Inventory插件为Malbers动物管理...保存和加载(基于JSON.Net,可选包含AES256加密(也可在库存系统之外使用!) 与AC/HAP的武器管理器完全集成,支持即将推出的新武器系统(一旦开发和发布!) 最大堆叠数的可堆叠项目
NDoc 是一款针对.NET框架的文档生成工具,版本1.3.1是它的一个较旧但仍然被一些开发者使用的版本,特别强调了对.NET 2.0的支持。NDoc的主要功能是自动生成高质量的API文档,它通过解析.NET程序集(如DLL或EXE)中的...
第一部分 构建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,目前的最新版本,支持.net Framwork 2.0,中文+绿色版
喜欢搞JSON开发的同胞可以拿去用! JSON采用完全独立于语言的文本格式,将与xml竞争!
在压缩包中的"json01"文件,可能是示例JSON数据或者是一个包含关于JSON使用教程的文档。为了更好地理解它的内容,你需要解压并查看文件的具体信息。无论是哪种情况,这个文件都能帮助你进一步了解如何在实际项目中...
Django 1.3.1 是一个基于 Python 的著名开源 Web 框架的重要版本,它专注于可维护性和高效率。这个版本适用于 Python 2.6.5,并且集成了 MySQL 数据库支持的驱动程序 MySQL-python-1.2.3.win32-py2.6。在本文中,...
Unity 是一个广泛使用的跨平台游戏开发引擎,它支持多种类型的项目,包括2D、3D游戏以及VR应用。Helios 1.3.1 作为Unity的一个扩展,使得开发者能够轻松地在Unity环境中录制全景视频,而无需复杂的外部软件或繁琐的...
第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...
`dom4j-1.6.1.jar`、`json-lib-2.4-jdk15.jar`和`xstream-1.3.1.jar`都是这样的第三方库,它们包含了实现特定功能的Java类。在微信开发中,将这些jar包添加到项目的类路径中,就可以直接使用其中的功能,而无需关心...
GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据抽象库,它提供了对多种栅格地理数据格式的支持。GDAL不仅用于地形处理,还广泛应用于遥感、地图制图、地理信息系统(GIS)等领域。这个强大的...