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的学习。

 

转载于:https://www.cnblogs.com/caoheyang911016/p/3172590.html

第一讲:extjs4.0概述和HELLO WORD程序 [01]EXTJS4.0的概述和HELLOWORD程序.wmv 第二讲:extjs4.0的新特性(附件较大做了分包压缩大家只要下载3个包运行001就ok了) [02]EXTJS4.0的新特性.003.zip (14.41M)[02]EXTJS4.0的新特性.002.zip (50.00M)[02]EXTJS4.0的新特性.001.zip 第三讲:extjs4.0数据模型--Model(附件较大做了分包压缩大家只要下载2个包运行001就ok了) [03]EXTJS4.0数据模型-Model.001.zip (70.00M)[03]EXTJS4.0数据模型-Model.002.zip (57.37M) 第四讲:extjs4.0的数据代理-Proxy [04]EXTJS4.0的数据代理-Proxy.002.zip [04]EXTJS4.0的数据代理-Proxy.001.zip 第五讲:extjs4.0的读写器reader,writer [05]EXTJS4.0的读写器reader,writer.wmv 第六讲:extjs4.0的数据集store [06]EXTJS4.0的数据集store.wmv (73.45M) 第七讲:extjs4.0的事件机制Event [07]EXTJS4.0的事件机制Event.001.zip (70.00M)[07]EXTJS4.0的事件机制Event.003.zip [07]EXTJS4.0的事件机制Event.002.zip 第八讲:extjs4.0的Ajax [08]EXTJS4.0的Ajax.003.zip (53.77M)[08]EXTJS4.0的Ajax.002.zip [08]EXTJS4.0的Ajax.001.zip 第九讲:extjs4.0的core包和Ext类 [09]EXTJS4.0的core包和Ext类.003.zip (60.22M)[09]EXTJS4.0的core包和Ext类.002.zip [09]EXTJS4.0的core包和Ext类.001.zip 第十讲:extjs4.0的util包 [10]EXTJS4.0的util包.001.zip (80.00M)[10]EXTJS4.0的util包.002.zip 第十一讲:extjs4.0的高级组件grid(上) 第十二讲:extjs4.0的MVC重构十一讲中的grid(中) 第十三讲:extjs4.0的高级组建grid(下)列模式 第十四讲:extjs4.0的高级组件grid补充01选择模式selection和表格特性feature 第十五讲:extjs4.0的高级组件grid补充02插件和其他相关知识 第十六讲:extjs4.0的高级组件tree上 第十七讲:extjs4.0的高级组件tree下 第十八讲:extjs4.0的高级组件tree+grid整合案例上 第十九讲:extjs4.0的高级组件tree+grid整合案例下 第二十讲:extjs4.0的高级组件tree+grid整合案例补充 第二十一讲:extjs4.0的高级组件form上 第二十二讲:extjs4.0的高级组件form中 第二十三讲:extjs4.0的高级组件form下 第二十四讲:extjs4.0的高级组件form补充01 第二十五讲:extjs4.0的高级组件form补充02 第二十六讲:extjs4.0的高级组件panel和layout上 第二十七讲:extjs4.0的高级组件panel和layout下 第二十八讲:extjs4.0的高级组件chart上 第二十九讲:extjs4.0的高级组件chart下 第三十讲:extjs4.0的desktop使用讲解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值