网站大量收购独家精品文档,联系QQ:2885784924

json与后台进行数据通信.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
json与后台进行数据通信.doc

How tocommunicate with server via JSON ? ? 引言 ? EXT技术对提升用户体验有着先天的优势,很多机构和个人都开始学习EXT技术,截止今天EXT CORE 3.0 也已经发布,EXTJS 3.0 指日可待。虽然性能越来越让人担忧。。。 ? 无论用多么惊天地泣鬼神的前台技术,与后台的通信总是必须的。本文就目前手头上有的资料和经验来大概阐述一下EXTJS和后台通信这点事。 ? ? 为什么要用JSON? ? ?选中JSON不是一拍脑门子的事。EXTJS也不是只支持JSON。目前常用的不外乎下面几种通信方式: ? ? 1. 动态语言文件周转,如JSP 用JSP一类的动态语言文件中转数据无疑是传递数据比较简单的一种,但是不好传递对象。随便举个用Session传递数据的例子。例如: varUserName= %=session.getAttribute(user)%; if(UserName==null){ location.href = login.jsp; } 缺点就是不能方便的传递对象。不那么舒服,EXT的不彻底。还在混杂使用JSP这种相比与EXT来说老掉牙的东西。 当然,如果项目条件不允许,或者不需要做成彻底的AJAX OnePage应用。这种方式还是可以解决很多迫在眉睫的问题的。(我是彻底的One Page 狂热者^.^) ? 2. JSON JSON是和JavaScript门当户对的数据传输方式,所以用起来会很舒服。而且他可以很方便的传递对象,EXT也对JSON支持的很全面。所有的数据传递需求他都可以胜任。现在第三方的JSON框架也很成熟。 ? 3. XML EXTJS本身是提供对XML类型数据的解析功能的,和JSON一样。 官方的示例程序也有专门演示XML数据通信的。个人感觉和JSON是同一个级别的,也是比较推荐的方式。 ? 4. 文本 异步调用返回的东西是文本,说白了AJAX就是靠文本传输数据的,无论JSON还是XML,他都是文本。所以文本很牛的。如果弄好了,自己定义一个传输格式也不是不可以。一般不复杂的东西,比如传个标记,传个string什么的。没必要用JSON,用文本就很好用。 缺点已经说了,就是无法胜任稍复杂的通信需求。 ? 所以目前看来就在JSON和XML中选择一个了。XML以后再表,我们现在主要表JSON。 ? 通信过程 ? ? ? 从后台到前台 ? 看一下通信过程中的图,其中对象我们已经有了,也就是你想要传递的东西。剩下的,就是后台如何把对象转换成JSON,以及前台如何把JSON再解析为对象了。我们先来看后台如何把对象转换成JSON。 ? 首先要隆重登场的是我自己改写的一个根据LIST生成JSON的类。其实这类简单的要死。所以他只能胜任把LIST转成JSON的工作。而且还有一个局限,至于是什么局限,我们慢慢说。 ? 先看代码: ? //yueue修改的轻量级JSON类 ? package Extest; import java.util.ArrayList; ? ? public class Json { ? ? public static void main(String[] args) { ? ? } public String singleInfo=; public Integer total=0; protected boolean _success=true; protected String _error=; protected ArrayList arrData=new ArrayList(); protected ArrayList dataItem=new ArrayList(); public String getError() { return _error; } public void setError(String error) { if(!error.equals())this._success=false; this._error = error; } public boolean getSuccess() { return _success; } public void setSuccess(boolean success) { if(success) this._error=; this._success = success; } public Json() { } public void reSet() { arrData.clear(); dataItem.clear(); } public void addItem(String name,String _value) { dat

文档评论(0)

资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档