• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 浅谈C#.NET、JavaScript和JSON

浅谈C#.NET、JavaScript和JSON

作者:失落の熊熊 字体:[增加 减小] 来源:互联网 时间:2017-05-28

失落の熊熊 通过本文主要向大家介绍了浅谈c语言的位运算,浅谈c语言,浅谈中国酒文化论文,浅谈执业药师的作用,浅谈夏季坐月子等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

写在前面

全部手打,没有多余的话,全部干货,基本上用到的我就记录了。

一、什么是JSON

JSON:JavaScript Object Notation,是一种轻量级的数据交互格式,主要用于数据传输。

二、JSON语法规则

 1、数据由键值对(映射)关系表示,使用 “:” 表示;

   例子:"name" : "赵大"。

 2、数据之间使用 “,” 分隔;

  例子:"name" : "赵大", "age" : "27"。

 3、数据映射的集合(对象)用 “{}” 包含;

  例子:一条学生数据对象:

  {"id" : "1", "name" : "赵大", "age" : "27", "gender" : "男"}

 4、并列数据的集合(对象的数组形式)用 “[]”包含,之间用 “,”分隔;

  例子:两条学生数据对象数组:

  [{"id" : "1", "name" : "赵大", "age" : "27", "gender" : "男"}, {"id" : "2", "name" : "钱二", "age" : "27", "gender" : "男"}]

三、JSON数据中的数据类型

  • 数字   (整数或者浮点数)
  • 字符串(在双引号中)
  • 布尔值(True或False)
  • 数组   (在[]中)
  • 对象   (在{}中)
  • NULL

四、JSON格式数据的数据表现

  通过JSON的语法规则可知,JSON数据一般有以下几种表现形式:

  1、单对象;

  2、对象集合(数组);

  3、1和2的组合:嵌套;

  4、纯字符串;

五、C#.NET与JSON

  在C#.NET环境下有对JSON序列化和反序列化支持的组件,也有第三方的组件,

  .NET支持的有 JavaScriptSerializer 类和 DataContractJsonSerializer 类,

  第三方支持的有 Json.net(newtonsoft.json)等。

 1、使用 JavaScriptSerializer 类对JSON数据序列化和反序列化:

  首先得在引用中引用:System.Web.Extentions.dll

  类文件中做引用:using System.Web.Script.Serialization;  

Dictionary<string, string> stu = new Dictionary<string, string>();
      stu.Add("id", "1");
      stu.Add("name", "赵大");
      stu.Add("age", "27");
      stu.Add("gender", "男");
      JavaScriptSerializer js = new JavaScriptSerializer();
      string stuJson = js.Serialize(stu);
      Console.WriteLine("使用 JavaScriptSerializer 类序列化得到JSON格式数据:");
      Console.WriteLine(stuJson);

示例:JSON单对象序列化
</div>
string deJson = stuJson;
      Dictionary<string, string> deStu = js.Deserialize<Dictionary<string, string>>(deJson);
      Console.WriteLine("使用 JavaScriptSerializer 类将JSON格式数据反序列化指定类:");
      foreach (string s in stu.Keys)
      {
        Console.WriteLine(s.ToString() + "=" + stu[s].ToString());
      }
      Console.ReadLine();

示例:JSON单对象反序列化
</div>

运行结果:

 

 2、使用第三方支持的 Json.net(newtonsoft.json)类库对JSON数据序列化和反序列化:

  参考地址:http://www.newtonsoft.com/json

六、JavaScript与JSON

 1、JavaScript中自定义JSON字符串并解析;

  例子:学生赵大信息:

function myJson() {
      var stu = { "id": "1", "name": "赵大", "age": "27", "gender": "男", "school": { "class": "03", "teacher": "赵大的老师" } };
      alert("id=" + stu.id + ", " + "name=" + stu.name + ", " + "age=" + stu.age + ", " + "gender=" + stu.gender);
    }
</div>

效果图:

 

 可以看到自定义的JSON字符串后,在使用stu这个对象可以自动识别为成员变量了。

   2、从后台传入的JSON数据通过解析后转化为JSON数据对象:

  例子:学生赵大信息(这里的Ajax请求用JQuery处理了):

$(document).ready(function () {
      $.ajax({
        url: "AjaxWeb.ashx",
        type: "GET",
        dataType: "JSON",
        success: function (data) {
          var stu = JSON.parse(data);
          alert("id=" + stu.id + ", " + "name=" + stu.name + ", " + "age=" + stu.age + ", " + "gender=" + stu.gender + ", " + "teacher=" + stu.school["teacher"]);
        },
        error: function (e) {
          alert(e.toString());
        }
      })
    })

从后台获取JSON字符串后转化为JSON对象
</div>
public void ProcessRequest(HttpContext context)
    {
      context.Response.Write(myJson2());
    }
    private string myJson2()
    {
      string json = " {\"id\": \"1\", \"name\": \"赵大\", \"age\": \"27\", \"gender\": \"男\", \"school\": { \"class\": \"03\", \"teacher\": \"赵大的老师\" }}";
      JavaScriptSerializer js = new JavaScriptSerializer();
      json = js.Serialize(json);
      return json;
    }

后台处理文件代码
</div>

效果图:

 

Chrome下F12开发人员工具调试效果图:

七、参考资料

百度百科

百度搜索

慕课网(http://www.imooc.com/)

JSON在线校验与排版美化(http://jsonlint.com/)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅谈C#中的for循环与foreach循环
  • 浅谈C#中的委托、事件与异步
  • 浅谈c#表达式树Expression简单类型比较demo
  • 浅谈C#.NET、JavaScript和JSON
  • 浅谈C# winForm 窗体闪烁的问题
  • 浅谈C#网络编程详解篇
  • 浅谈C# 类的继承
  • 浅谈C#中HttpWebRequest与HttpWebResponse的使用方法
  • 浅谈C# 中的委托和事件
  • 浅谈C#下winform和JS的互相调用和传参(webbrowser)

相关文章

  • 2017-05-28C#远程获取图片文件流的方法
  • 2017-05-28C#创建临时文件的方法
  • 2017-05-28C#滚动字幕的实现方法
  • 2017-05-28C#实现判断一个时间点是否位于给定时间区间的方法
  • 2017-05-28Winform启动另一个项目传值的方法
  • 2017-05-28深入DropDownList用法的一些学习总结分析
  • 2017-05-28C#实现多线程的同步方法实例分析
  • 2017-05-28.NET/C#实现识别用户访问设备的方法
  • 2017-05-28Microsoft Expression Web 简体中文正式版 官方下载地址
  • 2017-05-28C#委托现实示例分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c#定时器使用示例详解
    • 超炫酷的WPF实现Loading控件效果
    • C#执行SQL事务用法实例
    • 30分钟LINQ教程
    • DirectInfo.GetFiles返回数组的默认排序示例
    • C# Hook钩子实例代码 截取键盘输入
    • C#使用FolderBrowserDialog类实现选择打开文件夹方法详解
    • c#典型工厂化实现实例
    • C#使用浏览按钮获得文件路径和文件夹路径的方法
    • des加密解密源码 C# key值问题分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有