C# JSON格式数据用法
JSON简介
JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。
JSON与XML的比较
◆可读性
JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解。
◆文件大小与传输
XML允许使用方便的标签,所以文件尺寸是要比JSON大的。而且JSON源于Javascript,所以天生的主战场是Javascript与网络,在这里,JSON有着XML无法赶超的优势。
JSON语法
1. JSON 语法是 JavaScript 对象表示法语法的子集。
数据在名称/值对中:名称是字符串,使用双引号表示。值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在方括号中),对象(在花括号中),true/false/null。
数据由逗号分隔:
花括号保存对象:对象可以包含各种数据,包括数组。
方括号保存数组:数字可以包含对象。
在做开发的时候,很多数据都是以Json格式传输的,而使用Json的时候,我们通常会涉及到几个序列化对象的使用:
System.Runtime.Serialization.Json.DataContractJsonSerializer
System.Web.Script.Serialization.JavaScriptSerializer
Json.NET即Newtonsoft.Json
由于Json.NET的性能及通用性较好,因此它的使用范围越来越广,借助前人的经验今天我也总结使用一下。
官网API:http://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json.htm
开源的类库Newtonsoft.Json(下载地址https://www.newtonsoft.com/json)
private void Newtonsoft() {DataTable dt = new DataTable();dt.Columns.Add("Name", Type.GetType("System.String"));dt.Columns.Add("Sex", Type.GetType("System.String"));dt.Columns.Add("Age", Type.GetType("System.Int32"));dt.Columns.Add("PhoneNumber", Type.GetType("System.String")); for (int i = 0; i < 3; i++){DataRow dr = dt.NewRow();dr["Name"] = "Name" + i;dr["Sex"] = i % 2 == 0 ? "女" : "男";dr["Age"] = 18 + i;dr["PhoneNumber"] = "18233388888";dt.Rows.Add(dr);} /*序列化DataTable*/string json = JsonConvert.SerializeObject(dt); /*反序列化DataTable*/DataTable dtSource = JsonConvert.DeserializeObject<DataTable>(json); foreach (DataRow item in dtSource.Rows){ string name = item["Name"].ToString(); string sex = item["Sex"].ToString(); int age = int.Parse(item["Age"].ToString()); string phoneNumber = item["PhoneNumber"].ToString();} }
Serialize JSON 格式转换示例:
Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Sizes = new string[] { "Small" };string json = JsonConvert.SerializeObject(product);//
Deserialize JSON 格式转换
string json = @"{'Name': 'Bad Boys','ReleaseDate': '1995-4-7T00:00:00','Genres': ['Action','Comedy'] }";Movie m = JsonConvert.DeserializeObject<Movie>(json);string name = m.Name;
LINQ to JSON 格式转换
JArray array = new JArray(); array.Add("Manual text"); array.Add(new DateTime(2000, 5, 23));JObject o = new JObject(); o["MyArray"] = array;string json = o.ToString();
C# JSON格式数据用法相关推荐
- python生成json_如何将Python数组转为Json格式数据并存储?
在Python中将数组转为Json数据存储时需要用到将json模块中的json.dumps()或者json.dump()方法. ·json.dumps()方法用法 使用json.dumps( )方法将 ...
- 对JavaScript解析JSON格式数据的理解
对JavaScript解析JSON格式数据的理解 一.JSON与JavaScript对象的关系 1,JSON的由来: 在21世纪初,Douglas Crockford(Web开发领域最知名的技术权威之 ...
- (八): 查询结果直接返回Json格式数据
Bee简单易用:单表操作.多表关联操作,可以不用写sql,极少语句就可以完成SQL操作:10分钟即可学会使用. Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化. ...
- java json数据输出,java服务器端输出JSON格式数据
java服务器端输出JSON格式数据 本文我们讨论如何在服务器端输出 JSON 格式的数据.以 Java 为例,我们将演示将一个 Java 对象编码为 JSON 格式的文本. 将 String 对象编 ...
- php 如何发送json数据格式,Php如何使用curl发送json格式数据实例
Php 如何使用curl发送json格式数据实例 Php 如何使用curl发送json格式数据实例 这篇文章主要介绍了php使用curl发送json格式数据的实例,大家参考使用吧 代码如下: $url ...
- 返回json格式数据乱码
本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody@RequestMapping(value = "getListByTime", m ...
- ASP.NET输出JSON格式数据
最近在开发Windows8 Metro App,使用JavaScript和HTML开发环境.所以操作数据绑定都是使用JSON格式数据.后台使用的是ASP.NET,因为项目相对较小,所有后台没有使用数据 ...
- 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件
导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件 参考文章: (1)导入数据任务(id:373985)异常, 错误信 ...
- python中json模块_Python使用内置json模块解析json格式数据的方法
本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...
最新文章
- 12-09关于几种排序方式
- 腾讯 AI 2019这一年
- Python 语法问题-module ‘pip._internal‘ has no attribute ‘pep425tags‘. 原因及解决办法,32位、64位查看pip支持万能方法
- 2017 年全国大学生电子设计竞赛试题——四旋翼自主飞行器探测跟踪系统(C 题)【本科组】2
- MySQL Sharding DB (基于Fabric)
- java 简单的计算器程序,Java 简易计算器程序
- 适当的Java堆大小的5个技巧
- PyCharm 专题
- vss 6.0配置VS2005、VS2008 ---- 图文
- uva 563(最大流)
- 王守臣 | 文字不灭:省的钱,分一半
- 未来IT互联网企业的发展前景
- Nginx:配置 proxy_pass 代理转发
- 哨兵机器人钢力士_“X战警”中钢力士超乎常人的防御力很强吗?他惨遭这三位打脸!...
- 神经网络、目标检测学习
- kali虚拟机安装提示安装系统步骤失败
- java控制台实现的简易计算器,实现加减乘除
- 如何用revit打不开服务器文件,Revit教程 | Revit打开文件错误(文件已损坏)
- 海尔集团CEO张瑞敏演讲语录
- SPSS在电信行业中的应用
热门文章
- ubuntu下的能安装的百度网盘的资源最新网址
- interface-C#接口-统一的标准
- 弧焊 不同气体对焊缝的影响 100二氧化碳 15%氩气CO2混合
- 液位系统c语言程序,超声波自动测量物体液位系统的设计
- flash java 通信,Flash到JavaScript的通信实例
- java切入式编程显示屏_C语言嵌入式系统编程修炼之四:屏幕操作
- linux cgoup内存限制,Linux Cgroup系列(05):限制cgroup的CPU使用(subsystem之cpu)
- 优集品 php,从细节处着眼 优集品打造成人世界的儿童节
- python多个main方法_Python,main方法未运行(同一文件中有多个类)
- Windows与Linux之间海量文件的传输与Linux下大小写敏感问题