本文采用问答的方式来写

问题一:什么是 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的更多相关文章

  1. iOS - 分析JSON、XML的区别和解析方式的底层是如何实现的(延伸实现原理)

    <分析JSON.XML的区别,JSON.XML解析方式的底层是如何实现的(延伸实现原理)> (一)JSON与XML的区别: (1)可读性方面:基本相同,XML的可读性比较好: (2)可扩展 ...

  2. (菜鸟要飞系列)四,基于Asp.Net MVC5的后台管理系统(zTree绑定Json数据生成树)

    上一次老师让我们用递归将中国城市镇县四级联动 显示在树上,那个时候就知道可以显示在zTree上,可是苦于对Json的不了解,对zTree的Api的不了解,一直没有做出来,只好将递归算法显示在了窗体上, ...

  3. JSON Editor 中文文档

    JSON Editor JSON Editor 根据定义的JSON Schema 生成了一个Html 表单来对JSON进行编辑.它完整支持JSON Schema 的版本3和版本4,并且它集成了一些流行 ...

  4. 设置angular公共样式表

    一.现象 新创建的项目,是直接显示在src目录下的,假如会用到其它第三方的全局样式时,不能统一放在一个地方统一来管理,就会感觉有点乱. 二.解决 1.移动样式表. 在assets文件夹(该文件夹一般都 ...

  5. 咏南中间件JSON序列类

    咏南中间件JSON序列类 1)支持跨平台.跨语言 2)支持主从表数据序列.还原,支持任意数量的表 主从表数据序列为JSON字符串样式: { "rows": [ { "FD ...

  6. 通过Gson解析Json数据

    Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...

  7. 谷歌浏览器请求返回JSON内容自动格式化

    我们使用谷歌浏览器的扩展插件 下载插件 官方网址:https://github.com/gildas-lormeau/JSONView-for-Chrome 我也上传了 一份:https://yvio ...

  8. 前端HTML5几种存储方式的总结

    接下来要好好总结一些知识,秋招来啦...虽然有好多知识都不大会,但是还是要努力一下,运气这种东西,谁知道呢~ 总体情况 h5之前,存储主要是用cookies.cookies缺点有在请求头上带着数据,大 ...

  9. javascript运动学教程

    本文系笔者学习原生javascript动效的笔记.内容基于某非著名培训机构的视频教程.并重新做了归类整理.删除了一些过时的内容.并重做了GIF图,加上了自己的一些分析. 一. 运动学基础 引子:从左到 ...

随机推荐

  1. bzoj1650 / P2855 [USACO06DEC]河跳房子River Hopscotch / P2678 (noip2015)跳石头

    P2855 [USACO06DEC]河跳房子River Hopscotch 二分+贪心 每次二分最小长度,蓝后检查需要去掉的石子数是否超过限制. #include<iostream> #i ...

  2. P3810 【模板】三维偏序(陌上花开)

    P3810 [模板]三维偏序(陌上花开) cdq分治+树状数组 三维偏序模板题 前两维用cdq分治,第三维用树状数组进行维护 就像用树状数组搞逆序对那样做--->存权值的出现次数 attenti ...

  3. QtQuickcontrols2控件使用参考

    随着Qt的版本升级,其自带的controls控件库也不断升级,目前已经到了2.3的版本.本文通过解读Qt自带的gallery例程,说明新版本controls控件库的相关特性.其具体位置于: 因为相关的 ...

  4. 20145106 《Java程序设计》第9周学习总结

    教材学习内容总结 JDBC标准主要分为两个部分:JDBC应用程序开发者接口以及JDBC驱动程序开发者接口. 如果将来要换为Oracle数据库,只要置换Oracle驱动程序. Java中的数据类型和SQ ...

  5. 20145216史婧瑶《网络对抗》Web基础

    20145216史婧瑶<网络对抗>Web基础 实验问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签.表单域.表单按钮. (2)浏览器可以 ...

  6. Linux进程间通信--使用信号量【转】

    本文转载自:http://blog.csdn.net/ljianhui/article/details/10243617 这篇文章将讲述别一种进程间通信的机制——信号量.注意请不要把它与之前所说的信号 ...

  7. hdu1866 A + B forever!(面积并)题解

    A + B forever! Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  8. mysql-5.7.20-winx64.zip Zip版、解压版MySQL安装

    1.  zip下载地址: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-winx64.zip 2.官方文档位置: http:// ...

  9. opencv-python 学习初探2 去图片水印

    我要去除的水印是红色的.网上已经有很不错的帖子,我就不贴自己的代码了.留个指路自己以后查资料. 大概的思路就是用颜色拾取工具,拾取水印颜色,分析了图片,找到规律.比如我的图片水印是红色的,红色差不多g ...

  10. 抽象类的继承,接口的实现,接口类型数组的使用,根据instanceof判断(返回)是否该是哪一个类型,类型的强转.

    总觉得之前第2处有点问题,果然. 还需要instanceof判定一下,然后还需要把数组Animal[]转为Pet的才有方法play()~~~!