Ajax中使用JSON

ajax|js

  提交数据使用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数据" />
</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();
  }
}

注意:要引入json.js和json的源文件,使用json.jar不行,源文件参见书籍源代码第三章

时间: 2024-11-03 22:43:31

Ajax中使用JSON的相关文章

Ajax中解析Json的两种方法对比分析

  这里给大家介绍的是Ajax中解析Json的两种方法对比分析,十分的实用,本文为学习笔记,属新手文章,欢迎指教! eval(); //此方法不推荐 JSON.parse(); //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: ? 1 2 3 4 5 var jsonDate = '{ "name":"周星驰","age":23 }'   var jsonObj = eval( '(' + jsonDate + ')' );

Servlet如何获取ajax中以json格式传入的数据?

问题描述 Servlet如何获取ajax中以json格式传入的数据? 已经纠结了一天,帮帮忙,越详细越好,已经实现从servlet中获取json格式的数据,那么,在servlet如何获取ajax中以json格式传入的数据 解决方案 JavaScript: Java code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $('#but_json_json').click(fu......答案就在这里:Servlet如何获取ajax

Ajax中解析Json的两种方法对比分析_json

eval();  //此方法不推荐 JSON.parse();  //推荐方法 一.两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ "name":"周星驰","age":23 }' var jsonObj = eval( '(' + jsonDate + ')' ); // eval();方法 var jsonObj = JSON.parse( jsonDate ); // JSON.parse(); 方

jquery ajax中传递json数据的例子

html代码如下:  代码如下 复制代码 <!doctype html> <html lang="en">  <head>   <meta charset="gbk">   <meta name="Generator" content="EditPlus">   <meta name="Author" content=""

Ajax:拥抱JSON,让XML走开

ajax|js|xml Ajax(Asynchronous javascript and XML)说到底就是一种浏览器异步读取服务器上XML内容的技术.现在的技术凡是跟XML扯上关系,再加上个概念做幌子,就像金装了一样,拽得不行.门外 的人看得很是热闹,门里的人摇摇头不外如是.XML呢,跨平台的新潮语言?其实XML=TXT.XML只是符合很多规范的文本.它本身什么都不是,只是保 存字符的文件.而浏览器异步读取的只是服务器上的文本内容,所以在Ajax开发时完全不必拘泥于XML.[版权所有,www.

使用Jquery应用到Asp.net ajax中时应该避免的3个误区

Ajax中使用json这个轻量级数据类型通信的好处相信大家已经很清楚,考虑到安全问题,Asp.net Ajax的webService使用json,应该防止Json Hijacking.因此通常我们的做法是在使用Post请求式,并将 请求的content-type设置成application/json; charset=utf-8.但客户端如果你使用的是Jquery,有三 个细节问题是我们应该注意的: 1 :如果我们Post时没有任何数据传给服务端,请指定Data:{} 如: Code 1 $.a

json-ajax中eval()JSON.parse()parseJSON()和evalJSON()?

问题描述 ajax中eval()JSON.parse()parseJSON()和evalJSON()? 求解这几个方法的区别ajax中eval().JSON.parse().parseJSON()和evalJSON()的区别? 其中eval().JSON.parse()不用导入js文件 parseJSON()需要json.js文件 evalJSON()需要prototype.js文件 这几个中是不是evalJSON()最常用啊? 解决方案 json本身也是可以运行的js代码.所以可以调用eval

在Struts 2中使用JSON Ajax支持

JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,则 该Result无需映射到任何视图资源.因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据 ,并将该数据返回给客户端页面的JavaScript. 简单地说,JSON插件允许我们在JavaScript中异步调用Action,而且Action不再需要使用视图资源来 显示该Action里的状态信息,而是由JSON插件负责将Action里的状态信息返回给调用页

js中通过ajax无法获取json文件中的数据

问题描述 js中通过ajax无法获取json文件中的数据 在下小白,最近在学习js 就写了一段很简单的代码 但是发现居然还有问题 就是一个很简单的index-test.html页面中有一段js代码,里面用了ajax获取在同一目录下的 json文件中的数据,然后测试一下,但是运行发现没有结果 又不太会用浏览器调试 所以请教各位大侠 多谢多谢! 部署完项目 开启服务器后 在浏览器中输入URL,点击按钮 毫无反应... 多谢大家! 解决方案 ajax获取json格式数据js读取json文件片段中的数据