zoukankan      html  css  js  c++  java
  • Extjs 4.0学习文档1 开发入门 主要涉及json相关的东西

    最近在学习extjs 4.0   主要参照权威指南这本书。。这次的记录会很长,纯原创,忘各位大婶指教。。一起学习。。

    废话省略,开写。。。

     

    1.三层结构的知识

    Extjs本身在客户端就使用了三成架构,所有的UI组件都是表现层,store是数据库访问层。

    2.Json概述

    2.1 xml虽好,可以作为数据交换格式,但是有时候会喧宾夺主,标记比数据还多,徒增流量,更重要的是在javascipit中处理xml实在不便利,而json,没有附加的标记,在javascript中可作为对象处理,是一种理想的数据交互语言,可用。

    2.2 json的结构

       Json有对象和数组两种结构

       【1】其中:对象结构以”{”开始,以”}”结尾,中间部分由0个或多个以”,”分隔的”关键字/值”即key/value列表构成,而关键字之间与值之间必须以”,”分隔,语法示例如下:

       {key1:value1,key2,value2,….}

       从该结构可以看出,这种结构的json有点类似其他语言中的字典或者说是散列表,结构中的关键字是字符串,而值则可以是字符串,数组,ture,false,null,对象或者数值。

       注意:true,false和null必须全部为小写的字母,当值为对象或者数组的时候变量记录的是对象的指针。

       【2】数组结构以”[“开始,以”]”结束,中间部分有0个活多个以”,”分隔的值(value列表构成,结构语法如下:

       [value1,value2,…….]同于对象结构,值则可以是字符串,数组,ture,false,null,对象或者数值。

       注意:如果在最后一个”key/valuie”后,”}”之前有一个”,”如{a:!,b:2,}在IE8以及低于8的IE浏览器下会报错,IE9及其以上还有firefox等浏览器下是卟会报错的,这就要求我   们在写代码的时候一定要规范,免得到最后给自己和别人带来不必要的麻烦。

    3. Json的例子

      在json中读取数据的方法有两种,第一种方法是“.”后面加上关键字,第二种中括号中包含关键字。

          consose.log()是firebug中输出的代码的方式。

    4.在.NET中使用json

          首先需要下载JSON.NET  bll文件 。下载地址为 http://json.codeplex.com/,asp.net mvc新建项目工程后是会默认引用该bll文件的,所以无需下载。

      JSON.NET的功能中最常用的莫过于将.NET对象转化为JSON对象,毕竟这里我们用的extjs架构,在与数据库交互的过程中多以json格式进行数据的传递。

          题外话:只有linq to json方便是非常方便,写法让人很舒服,这个本人不否定,但是毕竟多了一步将所所写的linq查询语句转化为标准T-SQL的步骤,在小型网站以及数据库数据量并不多的情况由于对整个系统的效率要求并不高,所以这么写也无妨,但是如果涉及到数据量大的网站个人认为还是用传统的方式比较好,毕竟再好的东西都是在底层的东西上封装而来的。当然,纯属个人意见,如果各位高手有什么更好的方案请赐教。

    目前在.NET的大前提下,数据的临时存储,查询等功能莫过于通过集合(EF  下的IQueryable<T> IEnumerable<T>和传统的IList<T>,三者区别的区别请见 http://www.cnblogs.com/caoheyang911016/p/3178886.html 。)以及数据datatable两种方式。 不管是使用的那种方式,由于我们用的extjs架构,往往需要的是一个json格式的数据源,那么我们面临的直接问题就是如何才能将从数据库中查询出来的数据以最便捷的方式转换为我们想要的json形式的方法。

    如果是通过集合的方式临时存储数据的话那就非常简单了。通过一下代码即可实现。

     public ActionResult data()
            {
                return Json(new
                {
                    success = true,
                    data =集合,
                    message = "aa"
                }, JsonRequestBehavior.AllowGet);
            }
    

    但是如果是想要直接将datatable转为json格式的话,这就要用到我们前面所说的JSON.NET了。首先我们需要通过Newtonsoft.Json.JsonConvert.SerializeObject(object value)方法将所查询出来的结果转化为string,这个string对象的格式便是我们写json数据对象的方式了。即,如下格式:

    {"PV_ID":5,"PV_InfoCord":"PI20130606511883","PV_AddTime":null,"PV_Sex":0,"PV_Name":""},{"PV_ID":4,"PV_InfoCord":"PI20130606570995","PV_AddTime":null,"PV_Sex":0,"PV_Name":"时愚"

     但是Extjs对数据返回的格式还是有一定要求的,并不是单单的序列化之后的数据就行了。这时候我们就可以使用linq to json进行处理了。这里面涉及到四个对象,JObject、JArray、JProperty、Jvalue
    在此就不一一详解了。有需要的话请自行查阅。当然还有其他的方式能满足该功能需求,再此希望有高手有更好更简单的方案还请指教。

    好了。对于json的学习暂时告一段落,下一篇将正式开始extjs的学习。

     

  • 相关阅读:
    CORS跨域漏洞学习
    CVE-2020-0796漏洞复现(RCE)
    Wfuzz使用学习
    DNSlog注入学习
    一些CTF练习记录
    数据结构与算法(十三):赫夫曼树
    数据结构与算法(十二):堆排序
    博客园自定义代码块样式
    Nginx入门(二):常用功能配置
    数据结构与算法(十一):二叉树
  • 原文地址:https://www.cnblogs.com/caoheyang911016/p/3172590.html
Copyright © 2011-2022 走看看