本文采用问答的方式来写

问题一:什么是 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. ACM第二站————STL之stack

    栈,作为一种最基础的数据结构(栈还是一种内存的存储形式,就不介绍了),在各种数据结构的题目都会间接或者直接用到. 栈是一种受到限制的线性表,其限制是仅允许在表的一端进行插入和删除运算.这也给予了栈的一 ...

  2. Docker与虚拟机技术

    最近docker技术在网络上非常火爆,各种技术下载中心总能看到一个以docker镜像方式下载的下载选项,而当你下载下来运行发现,这就是一个虚拟机嘛.究竟是不是呢?一起来看看. 我们先来看看传统意义上的 ...

  3. 20145318《网络对抗》注入shellcode及Return-to-libc

    20145318<网络对抗>注入shellcode及Return-to-libc 注入shellcode 知识点 注入shellcodeShellcode实际是一段代码(也可以是填充数据) ...

  4. VC++ 文件和应用程序关联,默认图标不显示问题

  5. 1-20 RHEL7的启动原理和服务控制

    大纲: RHEL7启动原理 RHEL7服务启动配置 网络概述 发布内网服务器 ############################################################ ...

  6. decimal and double ToString problem

    decimal d2 = 0.0000002500m; Console.WriteLine(d2.ToString()); double d3 = 0.0000002500; Console.Writ ...

  7. C# 给某个方法设定执行超时时间

    ManualResetEvent.WaitOne 方法 https://msdn.microsoft.com/en-us/library/system.threading.manualreseteve ...

  8. 软件设计师真题试题&&答案

    软件设计师2013上半年上午试题及答案详解 下午试题 2013下半年上午答案 试题 下午答案 试题 2014上半年上午答案 2015上半年上午答案 2016上半年上午试题

  9. SQL 事务(Transaction)

    1.概念 指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)由多个sql语句组成,必须作为一个整体执行这些sql语句作为一个整体一起向系统提交,要么都执行.要么都不执行 语法步骤:开始事 ...

  10. ubuntu14.04 设置开机自启动脚本

    方法1.将脚本放入/etc/rc.local文件中. 方法2.添加一个ubuntu的开机启动服务 分为以下几个步骤: 1)新建一个脚本文件 new_services.sh #!/bin/bash # ...