json 的样式与应用 - C#/.NET
本文采用问答的方式来写
问题一:什么是 json ?
json是一种轻量级的数据交换格式,非常适合服务器与JavaScript交互。(它和XML一样,都是用来处理交互数据的)
问题二:json 长什么样子?(json数据的3种格式)
简单格式: { "result" : 0, "Name" : "张三", "Age" : 32 }
含对象的格式:
{ "result" : 0, "school" : "广州中医药大学", "person" : { "teacher" : "老师", "student" : "学生" } }
含对象、数组的格式:
{ "result" : 0, "school" : "广州中医药大学", "person" : { "teacher" : "老师", "student" : [ { "student1" : "张三" }, { "student2" : "李四" }, { "student3" : "王五" } ] } }
JSON 语法规则
数据在名称/值对中
数据由逗号分隔
花括号保存对象 方括号保存数组
问题三:对 json 数据的操作有哪些?
答案:专业用语叫 “序列化和反序列化”。 什么意思呢?
“序列化” 就是将你写好的对象所包含的信息(比如对象的属性和属性值)转换成 json 数据——转换成上面那三种样子。
“反序列化” 是将序列化的过程反过来——将你接收的 json 数据转换成你写好的类的对象。
举个例子:比如说为了方便程序的操作你给数据表写了一个类,类的每一个属性都对应着表里的一个字段,而现在你接收了一个 json 数据,数据里的信息刚好和这个表对应,这个时候利用 json 数据的“反序列化”——别人已经写好的方法,你可以直接就将接收到的 json 数据处理成你想要的样子,而不用每次接收的时候都根据当时接收的数据的格式以及字段的名字再写一串代码来获取你想要的信息,这样来说反序列化是不是很方便呢。同理,序列化也是一样的。
问题四:在 .NET框架下如何对 json 数据进行序列化和反序列化?
就像上个问题里说的,这些东西别人是已经写好的。具体的步骤如下:
(一)下载JSON .NET插件和代码(这里给一个下载地址https://sourceforge.net/projects/csjson/?source=dlp,好像也可以在VS的 nuget 里下载,不懂的话可以百度关键词嘛)
(二)在项目中进行引用 Newtonsoft.Json.dll(正常的添加“引用”)
(三)添加命名空间:using Newtonsoft.Json;
接下来就是序列化和反序列化了
序列化:
Person person = new Person();
person.Name = "GoldenEasy";
person.Age = 25;
string strSerializeJSON = JsonConvert.SerializeObject(person);
Response.Write(strSerializeJSON);
反序列化:
string strSerializeJSON = JsonConvert.SerializeObject(person);
Person user = (Person)JsonConvert.DeserializeObject(strSerializeJSON, typeof(Person));
Response.Write(user.Name);
json 的样式与应用 - C#/.NET的更多相关文章
- iOS - 分析JSON、XML的区别和解析方式的底层是如何实现的(延伸实现原理)
<分析JSON.XML的区别,JSON.XML解析方式的底层是如何实现的(延伸实现原理)> (一)JSON与XML的区别: (1)可读性方面:基本相同,XML的可读性比较好: (2)可扩展 ...
- (菜鸟要飞系列)四,基于Asp.Net MVC5的后台管理系统(zTree绑定Json数据生成树)
上一次老师让我们用递归将中国城市镇县四级联动 显示在树上,那个时候就知道可以显示在zTree上,可是苦于对Json的不了解,对zTree的Api的不了解,一直没有做出来,只好将递归算法显示在了窗体上, ...
- JSON Editor 中文文档
JSON Editor JSON Editor 根据定义的JSON Schema 生成了一个Html 表单来对JSON进行编辑.它完整支持JSON Schema 的版本3和版本4,并且它集成了一些流行 ...
- 设置angular公共样式表
一.现象 新创建的项目,是直接显示在src目录下的,假如会用到其它第三方的全局样式时,不能统一放在一个地方统一来管理,就会感觉有点乱. 二.解决 1.移动样式表. 在assets文件夹(该文件夹一般都 ...
- 咏南中间件JSON序列类
咏南中间件JSON序列类 1)支持跨平台.跨语言 2)支持主从表数据序列.还原,支持任意数量的表 主从表数据序列为JSON字符串样式: { "rows": [ { "FD ...
- 通过Gson解析Json数据
Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...
- 谷歌浏览器请求返回JSON内容自动格式化
我们使用谷歌浏览器的扩展插件 下载插件 官方网址:https://github.com/gildas-lormeau/JSONView-for-Chrome 我也上传了 一份:https://yvio ...
- 前端HTML5几种存储方式的总结
接下来要好好总结一些知识,秋招来啦...虽然有好多知识都不大会,但是还是要努力一下,运气这种东西,谁知道呢~ 总体情况 h5之前,存储主要是用cookies.cookies缺点有在请求头上带着数据,大 ...
- javascript运动学教程
本文系笔者学习原生javascript动效的笔记.内容基于某非著名培训机构的视频教程.并重新做了归类整理.删除了一些过时的内容.并重做了GIF图,加上了自己的一些分析. 一. 运动学基础 引子:从左到 ...
随机推荐
- yum配合rpm查看软件包安装位置
今天安装apache,新版本要求除了apache的安装包以外,还要求先安装apr.apr-util和pcre. 开始并没有急着去下载apr的安装包,而是想看看我的操作系统中有没有安装过了这个软件,结果 ...
- log4j.properties配置详解与实例
log4j.properties配置详解与实例 第一步:加入log4j-1.x.x.jar到lib下. 第二步:在工程的src下下建立log4j.properties.内容如下: #OFF,syste ...
- 07: jquery.cookie操作cookie
1.1 jquery.cookie常用方法 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术 1. 添加一个"会话cookie" $.cook ...
- 20145104张家明 《Java程序设计》第9周学习总结
20145104张家明 <Java程序设计>第9周学习总结 教材学习内容总结 第16章 -撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. -JDBC目的:让Java ...
- 20145330 《网络对抗》 Eternalblue(MS17-010)漏洞复现与S2-045漏洞的利用及修复
20145330 <网络对抗> Eternalblue(MS17-010)漏洞利用工具实现Win 7系统入侵与S2-045漏洞的利用及修复 加分项目: PC平台逆向破解:注入shellco ...
- 《网络对抗》拓展:注入shellcode
实践三 知识要求: shellcode:指溢出后执行的能开启系统shell的代码.但是在缓冲区溢出攻击时,也可以将整个触发缓冲区溢出攻击过程的代码统称为shellcode,因此可以将shellcode ...
- 【修改帐号信息】Eclipse中修改SVN用户名和密码方法
由于在svn 的界面中并没有为我们提供直接更换用户名密码的地方,所以一旦我们需要更换用户名的就需要自己想一些办法. 解决方案: 在Eclipse 使用SVN 的过程中大多数人往往习惯把访问SVN 的用 ...
- github上不去了
这几天发现github.com上不去了 可能是由于要杜绝国外的人使用最新的技术??从而屏蔽了吗?
- 【TCP/IP详解 卷一:协议】第9章 IP选路
推荐链接:网络地址与主机地址 9.1 引言 路由选择程序(daemon),通常这是一个用户进程.在大多数的Unix系统中,大多数的路由选择程序都是路由程序和网关程序. 路由表经常被IP访问,但是它被路 ...
- ftp协议及vsftpd的基本应用
1.ftp协议及vsftpd的基本应用 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系 ...