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格式数据用法相关推荐

  1. python生成json_如何将Python数组转为Json格式数据并存储?

    在Python中将数组转为Json数据存储时需要用到将json模块中的json.dumps()或者json.dump()方法. ·json.dumps()方法用法 使用json.dumps( )方法将 ...

  2. 对JavaScript解析JSON格式数据的理解

    对JavaScript解析JSON格式数据的理解 一.JSON与JavaScript对象的关系 1,JSON的由来: 在21世纪初,Douglas Crockford(Web开发领域最知名的技术权威之 ...

  3. (八): 查询结果直接返回Json格式数据

    Bee简单易用:单表操作.多表关联操作,可以不用写sql,极少语句就可以完成SQL操作:10分钟即可学会使用. Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化. ...

  4. java json数据输出,java服务器端输出JSON格式数据

    java服务器端输出JSON格式数据 本文我们讨论如何在服务器端输出 JSON 格式的数据.以 Java 为例,我们将演示将一个 Java 对象编码为 JSON 格式的文本. 将 String 对象编 ...

  5. php 如何发送json数据格式,Php如何使用curl发送json格式数据实例

    Php 如何使用curl发送json格式数据实例 Php 如何使用curl发送json格式数据实例 这篇文章主要介绍了php使用curl发送json格式数据的实例,大家参考使用吧 代码如下: $url ...

  6. 返回json格式数据乱码

    本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody@RequestMapping(value = "getListByTime", m ...

  7. ASP.NET输出JSON格式数据

    最近在开发Windows8 Metro App,使用JavaScript和HTML开发环境.所以操作数据绑定都是使用JSON格式数据.后台使用的是ASP.NET,因为项目相对较小,所有后台没有使用数据 ...

  8. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件

    导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件 参考文章: (1)导入数据任务(id:373985)异常, 错误信 ...

  9. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

最新文章

  1. 12-09关于几种排序方式
  2. 腾讯 AI 2019这一年
  3. Python 语法问题-module ‘pip._internal‘ has no attribute ‘pep425tags‘. 原因及解决办法,32位、64位查看pip支持万能方法
  4. 2017 年全国大学生电子设计竞赛试题——四旋翼自主飞行器探测跟踪系统(C 题)【本科组】2
  5. MySQL Sharding DB (基于Fabric)
  6. java 简单的计算器程序,Java 简易计算器程序
  7. 适当的Java堆大小的5个技巧
  8. PyCharm 专题
  9. vss 6.0配置VS2005、VS2008 ---- 图文
  10. uva 563(最大流)
  11. 王守臣 | 文字不灭:省的钱,分一半
  12. 未来IT互联网企业的发展前景
  13. Nginx:配置 proxy_pass 代理转发
  14. 哨兵机器人钢力士_“X战警”中钢力士超乎常人的防御力很强吗?他惨遭这三位打脸!...
  15. 神经网络、目标检测学习
  16. kali虚拟机安装提示安装系统步骤失败
  17. java控制台实现的简易计算器,实现加减乘除
  18. 如何用revit打不开服务器文件,Revit教程 | Revit打开文件错误(文件已损坏)
  19. 海尔集团CEO张瑞敏演讲语录
  20. SPSS在电信行业中的应用

热门文章

  1. ubuntu下的能安装的百度网盘的资源最新网址
  2. interface-C#接口-统一的标准
  3. 弧焊 不同气体对焊缝的影响 100二氧化碳 15%氩气CO2混合
  4. 液位系统c语言程序,超声波自动测量物体液位系统的设计
  5. flash java 通信,Flash到JavaScript的通信实例
  6. java切入式编程显示屏_C语言嵌入式系统编程修炼之四:屏幕操作
  7. linux cgoup内存限制,Linux Cgroup系列(05):限制cgroup的CPU使用(subsystem之cpu)
  8. 优集品 php,从细节处着眼 优集品打造成人世界的儿童节
  9. python多个main方法_Python,main方法未运行(同一文件中有多个类)
  10. Windows与Linux之间海量文件的传输与Linux下大小写敏感问题