Json.Net的介绍与简单实用(兼容2.0/3.0/3.5/4.5/RT)
-
本文的前提是你已经熟悉Json,如果您还不知道什么是Json是什么,请自行查看维基百科。
一、Json.Net是什么?
Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换。
二、为什么使用Json.Net?
我们知道在.Net中内置了读写Json的对象(DataContractJsonSerializer,JavaScriptSerializer),为什么我们还要用Json.Net呢?
在功能上:
特性 Json.Net DataContractJsonSerializer JavaScriptSerializer
Json 支持 支持 支持
Bson 支持 不支持 不支持
Json Schema 支持 不支持 不支持
.Net 2.0 支持 不支持 不支持
.Net 3.5 支持 支持 支持
.Net 4.0 支持 支持 支持
Silverlight 支持 支持 不支持
Windows Phone 支持 支持 不支持
Windows 8 Metro 支持 支持 不支持
Linq to Json 支持 不支持 不支持
Indented Json(有换行格式的Json) 支持 不支持 不支持
Json和XML转换 支持 不支持 不支持
序列化DataTable和DataSet 支持 不支持 不支持
序列化Entity Framework 支持 不支持 不支持在性能上:
三、简单实例
以下就json常用的方法给大家做一个简单的例子:
JavaScriptConvert.SerializeObject:将对象转换为josn字符串
[csharp]
Productproduct =newProduct();
product.Name ="Apple";
product.Expiry =newDateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes =newstring[] {"Small","Medium","Large"};
string json = JavaScriptConvert.SerializeObject(product);Productproduct =newProduct();
product.Name ="Apple";
product.Expiry =newDateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes =newstring[] {"Small","Medium","Large"};
string json = JavaScriptConvert.SerializeObject(product);
Newtonsoft.Json.JavaScriptConvert.DeserializeObject:根据json字符串反序列化得到对象。ProductdeserializedProduct = (Product)JavaScriptConvert.DeserializeObject(output,typeof(Product));
其中的output就是一个json字符串,而product是要反序列化的类对象
通过这两个常用的方法,就可以很方便的从json字符串得到对象和从对象得到json字符串
Json.Net的介绍与简单实用(兼容2.0/3.0/3.5/4.5/RT)的更多相关文章
- MongDb介绍及简单实用
一:介绍 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C ...
- Python -- Pandas介绍及简单实用【转】
转http://www.datadependence.com/2016/05/scientific-python-pandas/ 一. Pandas简介 1.Python Data Analysis ...
- OC基础--常用类的初步介绍与简单实用之集合类
集合类的异同点 一.NSArray\NSMutableArray *有序 *快速创建(只有不可变数组可以):@[obj1, obj2, obj3]; *快速访问元素:数组名[i] *只能存放对象 二. ...
- Android反编译工具介绍与简单实用方法
Android反编译的目的无非就是为了看到APK的xml.资源和代码: 得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar class ...
- OC基础--常用类的初步介绍与简单实用之NSString
一.NSString:不可变字符串/NSMutableString:可变字符串 1>字符串的常用创建方式: (1)NSString *s1 = @"Chaos"; (2)NS ...
- 简单实用的PHP防注入类实例
这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注 ...
- iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信
一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...
- 02tensorflow非线性回归以及分类的简单实用,softmax介绍
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # 使用numpy生成200个随机点 x_data ...
- .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序
.NET 跨平台RPC框架DotNettyRPC DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...
随机推荐
- 吴裕雄--天生自然HADOOP操作实验学习笔记:mapreduce和yarn命令
实验目的 了解集群运行的原理 学习mapred和yarn脚本原理 学习使用Hadoop命令提交mapreduce程序 学习对mapred.yarn脚本进行基本操作 实验原理 1.hadoop的shel ...
- centos7虚拟机分配静态IP但是得不到IP、不能上网一种可能的原因和解决办法
1.首先通过ifconfig查看网卡,发现网卡名称为ens33 2. 在/etc/sysconfig/network-scripts/目录下查看网络配置文件 3. 发现有ifcfg-eth0的配置文件 ...
- H5---禁止长按
以上行为可以总结成这几个(每个手机以及浏览器的表现形式不一样):长按图片保存.长按选择文字.长按链接/手机号/邮箱时呼出菜单. 想要禁止这些浏览器的默认行为,可以使用以下CSS: // 禁止长按图片保 ...
- 【Jmeter】jmeter提取response中的返回值,并保存到本地文件--BeanShell后置处理器
有个需求,需要在压测环境中,创建几十万的账号数据,然后再根据创建结果,查询到某些账号信息. 按照之前我的做法,直接Python调用API,然后再数据库查询: 但是近期所有开发人员的数据库访问权限被限制 ...
- jQuery笔记(四)jQuery中的动画
jQuery最吸引人的地方莫过于能做出绚丽的动画了,也是能极大提高用户体验的地方,这次我们就来一探jQuery中的动画! 一. show()方法和hide()方法 show()方法与hide()方法是 ...
- Linux_Centos7安装VNC实现远程桌面
一.首先安装GNOME桌面 yum groupinstall -y "GNOME Desktop"# 安装完成后,修改默认启动方式为图形化界面systemctl set-defau ...
- Spark学习之路 (六)Spark Transformation和Action[转]
Transformation算子 基本的初始化 (1)java static SparkConf conf = null; static JavaSparkContext sc = null; sta ...
- Java(三)String类
一.String类初始化方法 1.初始化一个空字符串 String str=new String();//这里调用了String的无参构造方法 2.初始化一个有值的字符串 String str1=&q ...
- 必看!macOS进阶不得不知的实用小技巧
不知道大家对使用苹果电脑的体验如何?您充分利用您的mac了吗?其实macOS上存在着许多快捷方式和技巧可以帮助简化我们的工作流程,提高效率,但是在日常生活中经常被人们忽略或者遗忘.以下是macdown ...
- PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)
图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来.现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换. 输入格式: 输入在第一行给出一幅图像的分辨 ...