当前位置: 首页 > news >正文

Asp.net中Json数据的转化,读取与应用

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,而且它是基于JavaScript 的。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript 等)。这些特性使JSON成为理想的数据交换语言。
 
Json数据有严格的格式,必须遵守这个格式才可以被解析,主要有两种结构
 
①“名/值”对的集合在不同的语言中被理解为对象,结构,关联数组等

②值的有序列表  在大部分语言中,它被理解为数组。
 
 
JSON表示名称/值对:{ "firstName": "Brett" }
 
多个名称/值对串在一起:{ "firstName": "Brett", "lastName":"McLaughlin"  }
 
 
从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下 JSON更容易使用,而且可读性更好。 当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性:

{ "employees": [
  { "firstName": "Brett", "lastName":"McLaughlin" },
  { "firstName": "Jason", "lastName":"Hunter"  },
  { "firstName": "Elliotte", "lastName":"Harold"  }
] }
 

asp.net使用json数据流程是什么呢?

1 aspx传值至cs

2 cs中处理aspx传来的值,一番处理之后,处理成json格式的值

3  传回aspx。aspx中可以通过拿到的处理后的数据。通过键值对的形式拿到值。

 

例一:

public class JsonHandler : IHttpHandler
{

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            
string data = "[{name:\"Tom\",age:\"26\"},{name:\"Jim\",age:\"27\"}]";
            context.Response.Write(data);
        }

 
 
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

}
 
 
②前台解析JSON数据
 
<head runat="server">
    <title></title>
    <script src="js/jquery-1.3.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {
            $.getJSON(
            "JsonHandler.ashx",
             function(data) {
                  $.each(data, function(i) {
                     $("#cat-list").append("<li>name:" + data[i].name
                                                 + "Age:" +data [i].age+ "</li>")
             });
           });
        });  
    </script>
</head>

<body>
    <form id="form1" runat="server">
    <div>
    <ul id="cat-list"></ul>
    </div>
    </form>
</body>
 
 

例二:

aspx

$.getJson("Ajax/Test.aspx",{ID:1}, function(data){

      $.each(data,function(i){

            data[i]...........

     })

} ) 

Test.cs

public partial class GetPoints : System.Web.UI.Page

{

  List<Student> list  = GetList(id);

  JavaScriptSerializer jss = new JavaScriptSerializer();
  Response.Write(jss.Serialize(list));

  Response.End();
}

 

我们看到JavaScriptSerializer 这个对象的Serialize这个方法,这个方法是做什么用的呢?

Model.Student本身有name等字段,Serialize这个方法方法处理将数据对象处理成json格式的数据,其中

[{"num":"111","name":"xy","location":"china"}]........等。通过data[i].name的形式可以拿到里面的值。
 
我们当然可以使用$.ajax方法来拿到处理后的json数据了。
 
$.ajax({
     type:"GET",
     dataType:"json",
     data:{id:json[i].ID},
     async:false,
     url:"Ajax/Test.aspx"
     success:function(data){
                                         
      }
});
本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/949609如需转载请自行联系原作者

woshixuye111

相关文章:

  • Octave添加package方法
  • 【Android Demo】Android中取得手机屏幕大小
  • JFace中的表格型树TableTreeViewer
  • IE8中HTTP连接数目的变化
  • 实时游戏对战引擎Photon
  • python入门系列之一:Centos6下python2.7的安装
  • Skype For Business 2015实战系列19:统一通讯之配置Exchange 2013 SP1
  • nginx部署
  • redhat 6.5 配置WAS控制台中文
  • filebeat 配置文件详解
  • windows用户和组及其权限的设置
  • 磁盘安装启动的方法与ASM
  • MySQL解析器源码分析--对select语句中子查询处理逻辑的分析(一)
  • 使用.net 2.0开发多层架构的系统之一——本网站2006-10-01版本源代码公布
  • Day18 Django的深入使用
  • CSS中外联样式表代表的含义
  • Docker: 容器互访的三种方式
  • Fundebug计费标准解释:事件数是如何定义的?
  • JavaScript实现分页效果
  • JS 面试题总结
  • JSONP原理
  • JS题目及答案整理
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Vue UI框架库开发介绍
  • 初识MongoDB分片
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 将 Measurements 和 Units 应用到物理学
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 数据结构java版之冒泡排序及优化
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 我建了一个叫Hello World的项目
  • 由插件封装引出的一丢丢思考
  • 06-01 点餐小程序前台界面搭建
  • const的用法,特别是用在函数前面与后面的区别
  • ​ssh免密码登录设置及问题总结
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (LeetCode C++)盛最多水的容器
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)VC++中ondraw在什么时候调用的
  • (转)德国人的记事本
  • (转)重识new
  • .“空心村”成因分析及解决对策122344
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .net开发时的诡异问题,button的onclick事件无效
  • .net中应用SQL缓存(实例使用)
  • .net专家(张羿专栏)
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken