本文采用问答的方式来写

问题一:什么是 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. iOS原生的AVFoundation扫描二维码/条形码

    #import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVCaptureMetadataOutputO ...

  2. Notes of Head.First.HTML.and.CSS.2nd.Edition

    What does the web server do? tirelessly waiting for requests from webbrowsers What does the web brow ...

  3. P4009 汽车加油行驶问题

    P4009 汽车加油行驶问题 最短路 清一色的spfa....送上一个堆优化Dijkstra吧(貌似代码还挺短) 顺便说一句,堆优化Dj跑分层图灰常好写 #include<iostream> ...

  4. finedb(内置的HSQL数据库)迁移数据到MySQL

    finedb(内置的HSQL数据库)迁移数据到MySQL 1. 前言 在FineBI中,决策平台的数据(用户.角色.组织机构.权限等信息)是存储在finedb数据库中的,默认情况下finedb是一个内 ...

  5. Python3基础 str split 用指定的字符将字符串分割

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. 常用模块之hashlib,subprocess,logging,re,collections

    hashlib 什么是hashlib 什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,M ...

  7. linux中线程池【转】

    本文转载自:http://blog.csdn.net/yusiguyuan/article/details/18401277 一.线程池 大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时 ...

  8. 奖券数目|2015年蓝桥杯B组题解析第一题-fishers

    奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是5位 ...

  9. zedgraph右键菜单的汉化

    http://blog.csdn.net/jeryler/article/details/7876376 修改 zedGraphControl的ContextMenuBuilder事件即可! zedG ...

  10. 论文笔记——Channel Pruning for Accelerating Very Deep Neural Networks

    论文地址:https://arxiv.org/abs/1707.06168 代码地址:https://github.com/yihui-he/channel-pruning 采用方法 这篇文章主要讲诉 ...