`
yshao81710
  • 浏览: 94058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

提交数据使用json代替xml

阅读更多

提交数据使用json代替xml

    页面:jsonExample.jsp

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
JSON示例
</title>
<script type="text/javascript" src="zxml.src.js"> </script>
<script type="text/javascript" src="json.js"> </script>
<script type="text/javascript">
var xmlHttp;
       
        //创建对象
        function createXMLHttpRequest(){
        xmlHttp = zXmlHttp.createRequest();
        }
       
        function doJSON(){
          //得到Car对象
        var car = getCarObject();
               
                //用JSON字符串化car对象
                var carAsJSON = car.toJSONString();
                alert("汽车对象JSON化为:\n" + carAsJSON);
               
                var url = "JSONExample?timeStamp=" + new Date().getTime();
               
                //创建对象
                createXMLHttpRequest();
                xmlHttp.open("POST",url,true);
                xmlHttp.onreadystatechange = handleStateChange;
                xmlHttp.setRequestHeader("Content-Type","application/x-www-form.urlencoded");
                xmlHttp.send(carAsJSON);
        }
       
        //回调方法
        function handleStateChange(){
        if (xmlHttp.readyState == 4){
                if (xmlHttp.status == 200){
                        parseResults();
                        }
                }
        }
       
        //解析结果
        function parseResults(){
        var responseDiv = document.getElementById("serverResponse");
                if (responseDiv.hasChildNodes()){
                responseDiv.removeChild(responseDiv.childNode[0]);
                }
               
                var responseText = document.createTextNode(xmlHttp.responseText);
                responseDiv.appendChild(responseText);
        }
       
        //得到Car对象
        function getCarObject(){
        return new Car("Dodge","Coronet R/T",1968,"yellow");
        }
       
       
        //Car构造函数
        function Car(make,model,year,color){
        this.make = make;
                this.model = model;
                this.year = year;
                this.color = color;
        }
</script>
</head>
<body>
<br /> <br />
<form action="#">
  <input type="button" value="发送JSON数据" onclick="doJSON();"/>
</form>
<h2>
  服务器响应:
</h2>
<div id="serverResponse">
</div>
</body>
</html>


    服务器:JSONExample.java

package ajaxbook.chap4;

import java.io.*;
import java.net.*;
import java.text.ParseException;
import javax.servlet.*;
import javax.servlet.http.*;
import org.json.JSONObject;

public class JSONExample
    extends HttpServlet {
  //处理Post方法
  protected void doPost(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException,
      IOException {
    String json = readJSONStringFromRequestBody(request);

    //使用JSON绑字Ajax对象
    JSONObject jsonObject = null;
    try {
      jsonObject = new JSONObject(json);
    }
    catch (ParseException pe) {
      System.out.println("ParseException: " + pe.toString());
    }

    //返回输出结果
    String responseText = "You have a " + jsonObject.getInt("year") + " "
        + jsonObject.getString("make") + " " + jsonObject.getString("model")
        + " " + " that is " + jsonObject.getString("color") + " in color.";

    response.setContentType("text/xml");
    response.getWriter().print(responseText);
  }

  //得到参数
  private String readJSONStringFromRequestBody(HttpServletRequest request) {
    StringBuffer json = new StringBuffer();
    String line = null;
    try {
      BufferedReader reader = request.getReader();
      while ( (line = reader.readLine()) != null) {
        json.append(line);
      }
    }
    catch (Exception e) {
      System.out.println("Error reading JSON string: " + e.toString());
    }
    return json.toString();
  }
}

分享到:
评论

相关推荐

    xml-to-json:简单的API,可通过URL或粘贴原始XML数据将动态XML提要转换为JSON。 用PHP制作100%

    由于大多数现代应用程序和API都使用JSON代替,因此通常有必要将XML转换为JSON ...” –( 有些工具不能很好地解析XML数据(例如,来自locale en-US )。 特别是当属性中存在数据时,例如: &lt; item contentType...

    XML可以做为参数传给【存储过程】也可以做为后台返回值传给前端的【JS】

    3.1 **使用实体类代替XML**: 虽然XML提供了一种通用的数据交换格式,但处理起来比较繁琐。在前后端交互中,通常推荐返回JSON格式的数据,因为JSON更易于阅读和处理。在后台,可以将数据转换为对象,然后序列化为...

    xml存储留言方案php版-回复留言(源代码)

    - 另外,可以考虑使用JSON格式代替XML,因为JSON在Web应用中更常见,且解析速度通常更快。 综上所述,这个XML存储留言方案结合PHP,提供了一个基础的留言系统实现。通过理解XML和PHP的交互,以及如何在PHP中操作...

    exercises-json-rpc.pdf

    #### 练习三:重构先前练习,采用JSON-RPC代替显式使用JSONObject和JSONArray 重新实现之前练习中的功能,但这次使用JSON-RPC替代直接操作`JSONObject`和`JSONArray`。需要注意的是,如果服务器端的方法返回一个`...

    Android平台手机访问Web服务器的有效数据交互方法

    GET方法通常用于请求特定资源的信息,而POST方法则用于提交数据到服务器。Android SDK提供了多种API,如HttpURLConnection和HttpClient,用于发起HTTP请求和处理响应。 #### 数据格式与处理 在数据交互中,常见的...

    PragmaticAjax

    - 使用JSON代替XML的优点 - 异步处理和回调函数 - 考虑到SEO(搜索引擎优化)的Ajax设计 - 优雅降级和渐进增强策略 - 处理浏览器兼容性问题 - 用Ajax实现的常见Web应用示例 - 页面状态管理和历史记录管理 - 安全性和...

    Ajax的学习笔记

    这种技术的核心是JavaScript,XML最初是作为数据交换格式,但随着JSON的流行,现在更多地使用JSON代替XML。 ### 一、Ajax的基本工作原理 1. **创建XMLHttpRequest对象**:这是Ajax的核心组件,几乎所有的现代...

    AJAX课件及案例

    - 在现代的AJAX应用中,通常使用JSON代替XML,因为JSON结构更简单,解析更快,与JavaScript的兼容性更好。 **4. AJAX的局限性** - **浏览器兼容性**:虽然现代浏览器都支持AJAX,但老版本或非主流浏览器可能存在...

    ajax技术演示文稿

    不过,随着JSON的普及,现在更多情况下,JSON被用来代替XML,因为JSON更简洁且易于解析。 4. **XSLT(XSL Transformations)**:XSLT用于转换XML数据,将其转化为适合显示的格式,如HTML或CSS。 5. **JavaScript和...

    Ajax在题库管理和在线考试系统中的应用

    3. XML和XSLT:用于数据交换和处理,虽然现在更常见的是JSON代替XML,因为JSON更轻量级且易于解析。 4. XMLHttpRequest:这个对象是Ajax的核心,它负责在后台与服务器进行异步通信。 5. JavaScript:负责绑定和处理...

    jave\ajax\websevice学习总结

    现代的Ajax经常使用JSON代替XML进行数据交换,因为JSON更易于处理。 **WebService** WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的软件,可通过互联网提供服务。它允许不同系统间的应用程序相互通信,实现...

    RealWorldAJAX

    3. **JSON代替XML**:虽然名字中有XML,但实际应用中,JSON因为其简洁和易于解析的特性,已经成为Ajax传输数据的首选格式。 4. **首屏优化**:在页面初次加载时,尽量避免依赖Ajax的内容,以提供快速的初始渲染。 5....

    AJAX 设计 策略

    6. **性能优化**:合理使用缓存,减少HTTP请求次数,优化数据格式,如使用JSON代替XML,因为JSON解析更快。 **四、AJAX的挑战与解决方案** 1. **SEO问题**:由于搜索引擎爬虫无法执行JavaScript,可能会导致内容...

    《AJAX编程技术与实例》

    5. **JSON(JavaScript Object Notation)**:代替XML作为数据交换格式,由于其简洁性和易用性,逐渐成为AJAX应用中的首选。 **AJAX工作原理:** 1. 用户触发事件,例如点击按钮。 2. JavaScript代码创建一个新的...

    Ajax Sample

    3. **使用JSON代替XML** 虽然Ajax名字中包含XML,但实际应用中,JSON(JavaScript Object Notation)格式更为常见,因为它更易于阅读和编写,并且在JavaScript中处理起来更自然。Prototype支持JSON,可以通过`...

    php+ajax完全自学手册 代码手册

    随着JSON格式的普及,书中也会涉及如何使用JSON代替XML,以及如何利用AJAX实现无刷新的数据提交和获取。此外,手册还将引入jQuery等JavaScript库,简化AJAX操作,让开发者可以更加高效地编写代码。 为了帮助读者...

    ROOT.rar_ROOT

    4. **JSON代替XML**:虽然Ajax名称中包含XML,但在现代Web开发中,JSON(JavaScript Object Notation)更常用于传递数据,因为它与JavaScript语法兼容,解析和生成更加方便。因此,聊天室的通信可能以JSON格式进行,...

    ASP+Ajax无刷新登陆

    Ajax的核心是JavaScript异步通信,通常使用XMLHttpRequest对象来实现,但现代应用更多地使用JSON格式代替XML传输数据。 "ASP+Ajax无刷新登录"是指结合ASP技术和Ajax技术实现的一种登录功能,它允许用户在不刷新整个...

    AjaxRequest(Ajax使用包)

    5. **JSON (JavaScript Object Notation)**: 代替XML作为数据交换格式,更轻量级、更易于处理。 **AjaxRequest的使用** 在"ajaxrequest.js"这个文件中,可能包含了用于发起Ajax请求的函数或类。下面是一些常见的...

    php+ajax 完全手册电子光盘

    在手册中,你将学习到AJAX的基本概念,XMLHttpRequest对象的使用,以及如何使用JSON数据格式代替XML进行数据传输。此外,还会涉及jQuery等库的使用,简化AJAX操作。 结合PHP与AJAX,可以创建出更富用户体验的Web...

Global site tag (gtag.js) - Google Analytics