`
huibin
  • 浏览: 756917 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

JSON例子

    博客分类:
  • JSON
阅读更多

1.一个简单的列子
需求分析:在一个页面中,有个公司的下拉框,列出了不同的几个公司,当我选择其中一个公司的时候,
右侧该公司对应的机构列表和类型的下拉框也要实现联动效果,当然常规的ajax就可以实现,下面看下ajax和json是如何结合使用的!
1).<select name="corpId" onchange="getOrgs(this)" id="corpId" >
   <option value="">--请选择公司---</option>
   <c:forEach var="corp" items="${corps}">
    <option value="${corp.id }">
     ${corp.name }
    </option>
   </c:forEach>
</select>
2).首先构造ajax的getXMLHTTPRequest函数,保持独立通用性
function getXMLHTTPRequest(){
   var xmlHttp=null;
   if(window.XMLHttpRequest){
    xmlHttp = new XMLHttpRequest();
   }else if(ActiveXObject){
    try{
     xmlHttp = new ActiveXObject("Miscrosoft.XMLHTTP");
    }catch(e){
       try{
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
     }catch(e){
       alert("不支持的浏览器类型!!");
     }
    }
   }
   return xmlHttp;
}
3).当公司的下拉列表发生改变时,就会调用:onchange="getOrgs(this)"函数
function getOrgs(obj){
   var corpid = obj.options[obj.selectedIndex].value;
   var url = "car.shtml?action=getOrgCorpTypeByCorpId&corpid="+corpid+";
   dealWithAjax(url,setOrgs);
}
4).调用dealWithAjax函数
function dealWithAjax(url,back){
   var xmlHttp = getXMLHTTPRequest();
   if(xmlHttp){
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=function(){
      back(xmlHttp);
    };
    xmlHttp.send(null);
   }
}
5).下面看下回调函数,即setOrgs(xmlHttp)函数
function setOrgs(xmlHttp){
   if(xmlHttp.readyState==4){
     if(xmlHttp.status==200){
      var text= xmlHttp.responseText;     
      if(!/^\s*$/.test(text))
      setOrg(text);     
       }
    }
}
6).再看下setOrg(text)函数
function setOrg(text){
   var area = document.getElementById("aresId");
   var type = document.getElementById("corptype");
   area.options.length = 0;
   type.options.length = 0;
  
   var jsonInfo = eval(text);//eval是js中转换函数
   for(var i = 0; i < jsonInfo.length; i++){
    var info = jsonInfo[i];
    if(info.type){ //如果对象有type属性,那么该对象就是Datadict对象
     type.options.add(new Option(info.name,info.id)) ;   
    }else { //否则,就是Org对象
     area.options.add(new Option(info.name,info.id));
    }
   }
}
7).下面看下action中的结果集是如何返回到javascript中的
public ActionForward getOrgCorpTypeByCorpId(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
   String corpId = request.getParameter("corpid");
   Corp corp = new Corp();
   corp.setId(corpId);
   corp = corpService.getInfo(corp);
   String areas = corp.getAreaId();
   String[] areaStrings = areas.split(",");
   List resultList = new ArrayList();
   for (String area : areaStrings) {
    Org org = new Org();
    org.setId(area);
    resultList.addAll(orgService.getAllList(org));
   }
   String corpTypes = corp.getCorptype();
   if (corpTypes != null) {
    String[] corpTypteStrings = corpTypes.split(",");
    for (String corpType : corpTypteStrings) {
     Datadict datadict = new Datadict();
     datadict.setId(corpType);
     resultList.addAll(datadictService.getList(datadict));
    }
   }
   JSONArray ar = JSONArray.fromObject(resultList);//这一步是转换成JSONArray
   PrintWriter writer = response.getWriter();
   writer.print(ar);//这一步就是输出结果集
   return null;
}

分享到:
评论

相关推荐

    ajax,jQuery 例子大全,json例子

    这个压缩包文件中的例子涵盖了Ajax、jQuery和JSON的基础使用,从简单的GET请求到复杂的异步数据交互,对于初学者来说是非常宝贵的资源。通过学习和实践这些例子,你可以更好地理解和掌握如何使用Ajax和jQuery来创建...

    json例子和demo

    通过学习这个JSON例子和demo,Java开发者可以更好地理解和应用JSON,这对于开发涉及数据交换的Java应用,尤其是与Web服务交互时,是非常关键的技能。同时,了解和掌握XML和JSON两者之间的差异和应用场景也非常重要,...

    delphi解析Json例子

    本篇文章将深入探讨如何在Delphi中解析JSON数据,以"delphi解析Json例子"为例。 首先,了解Delphi中的JSON支持。自Delphi XE3开始,Embarcadero在其RTL(运行时库)中引入了System.JSON单元,为开发者提供了处理...

    AJAX+JSON例子.rar

    在"AJAX+JSON例子.rar"这个压缩包中,我们很可能会找到一个示例项目,展示了如何使用AJAX和JSON进行前后端交互。这个例子可能包括HTML页面、JavaScript脚本以及服务器端的处理脚本。以下是对这些关键部分的详细解释...

    struts2_json例子工程

    总结来说,这个“struts2_json例子工程”是一个完整的示例,展示了如何在Struts2中通过集成`struts2-json-plugin`插件,设置配置文件,编写Action类,以及处理JSON响应,帮助开发者理解并掌握Struts2对JSON的支持。...

    struts2 json例子 可执行

    综上所述,"struts2 json例子 可执行"意味着提供了一个可以运行的示例,展示了如何在Struts2框架下配置和使用JSON,包括Action的配置、Model驱动、JSON数据的发送和接收,以及可能涉及到的前端JQuery和Ajax交互。...

    JSON 例子

    JSON,全称JavaScript Object Notation,是...通过本JSON例子,你可以学习到如何创建和解析JSON数据,以及如何在实际项目中运用JSON进行数据交换。不论是Web开发还是其他领域的数据处理,JSON都是一个不可或缺的工具。

    ajax例子,json例子

    标题"ajax例子,json例子"暗示我们将讨论如何使用Ajax技术来处理JSON数据。Ajax的核心在于XMLHttpRequest对象,它提供了与服务器异步通信的能力。下面,我们将深入探讨这两个概念及其结合使用的方法。 1. **Ajax...

    Struts2 JQueryJson例子 .rar

    这个"Struts2 JQueryJson例子 .rar"压缩包很可能是包含了一个实际的项目实例,演示了如何在Struts2框架中利用JQuery和JSON进行数据交互。下面将详细讲解Struts2、JQuery和JSON的相关知识点: 1. **Struts2框架**: ...

    简单的SSH+JQuery+JSON例子

    结合以上技术,一个简单的SSH+JQuery+JSON例子可能包含以下步骤: 1. 用户通过前端页面发送Ajax请求,请求由JQuery发起,数据格式为JSON。 2. Struts框架接收到请求,通过Action转发到Spring控制层。 3. Spring控制...

    dominio xpages 使用xagent生成json例子

    在"dominio xpages 使用xagent生成json例子"这个主题中,我们将探讨如何利用XAgent在XPages环境中创建并返回JSON响应。以下是一些关键知识点: 1. **XAgent的概念**:XAgent是一个特殊的HTTP代理,它可以处理HTTP...

    我的关于JSON例子

    标题“我的关于JSON例子”表明我们将探讨JSON的实际应用,通过实例了解如何在JavaScript中操作和解析JSON数据。在JavaScript中,有内置的方法可以将JavaScript对象转换为JSON字符串(`JSON.stringify()`)以及将JSON...

    json例子集合里面有很多自己总结的JSON例子

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它基于JavaScript的一个子集,但设计的目标是独立于语言,同时易于人类阅读和编写,也易于机器解析和生成。...

    ext tree json 例子(不含EXT包)

    "ext tree json 例子(不含EXT包)"这个标题暗示我们将讨论如何在不直接引用EXT完整包的情况下,仅使用EXT JS中关于TreePanel和JSON解析的部分来构建一个动态的树形结构。这可能涉及到手动引入EXT的核心组件,如...

    json json例子

    而在这个“json json例子”中,我们可能看到了一些额外的示例或解释,旨在加深对JSON的理解。 JSON的主要结构有两种:对象和数组。对象被定义为一个由大括号{}包围的键值对集合,键与值之间用冒号隔开,多个键值对...

    jquery+ajax+json例子

    在Web开发中,jQuery、Ajax和JSON是三个非常重要的技术,它们共同构成了高效、动态的用户界面的基础。本文将深入探讨这些技术,并结合一个名为"TestJQuery"的示例来展示它们如何协同工作。 首先,jQuery是一个...

    JSON例子简介和使用

    JSON(JavaScript Object Notation),是一种轻量级的基于文本且独立于语言的数据交换格式。它源于ECMAScript程序语言标准-第3版(ECMA-262 3rd Edition - December 1999)的子集,定义了便于表示结构化数据的一套...

    Delphi使用ISuperObject解析json的例子

    一个简单的Delphi使用ISuperObject解析json的例子

    android 优化解析json例子

    本篇文章将深入探讨一个优化过的Android JSON解析例子,帮助开发者提升应用程序的效率。 首先,我们需要了解在Android中解析JSON的两种主要方法:`org.json`库和Gson库。`org.json`是Android SDK自带的库,适合简单...

Global site tag (gtag.js) - Google Analytics