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

json ajax简单例子

    博客分类:
  • java
阅读更多

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 易于人阅读和编写,

JSON建构于两种结构:

(1)“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

(2)值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

ajax已成为一种热门的js异步执行的技术,但是在前端页面传递参数时,一般有两种方式,一种是将参数组装成字符串,通过Get或者Post方式发送除去,这种方式适合于参数不多,内容不丰富的情况。另外一种是要传递丰富的参数,一般就要使用连接字符串的方式将它组装成一定格式的xml内容,既不方便阅读,也很麻烦,这时,JSON就体现出它的优势,结合JSON-Java library,在后台服务可以很容易的解析请求的参数值。下面就实现一个从前台页面发送一些json格式的字符串给后台,后台解析后返回一些信息在前台页面展示的功能。

 

1 创建前台页面index.jsp里调用ajax请求,js如下

<script type="text/javascript" src="js/json.js"></script>
<script type="text/javascript">
//创建xmlhttp对象
var xmlHttp;
function  createXMLHttpRequest()  {
  if  (window.ActiveXObject)  {
     xmlHttp  =   new  ActiveXObject("Microsoft.XMLHTTP");
  }  
  else   if  (window.XMLHttpRequest)  {
     xmlHttp  =   new  XMLHttpRequest();
  } 
} 
//创建Person类有参构造器
function Person(name,age,gender,birthday){
	this.age = age;
	this.gender = gender;
	this.name = name;
	this.birthday = birthday;
}
//创建一个Person的对象
function getPerson(){
	return new Person("coco",25,true,"1988-08-08");
}
//发起ajax请求
function doJSON(){
   var  person  =  getPerson();
   
   //使用json.js库里的stringify()方法将person对象转换成Json字符串 
   var  personAsJSON  =  JSON.stringify(person);
   alert( " Car object as JSON:\n  "   +  personAsJSON);
   
   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(personAsJSON);
}

function  handleStateChange()  {
    if (xmlHttp.readyState  ==   4 )  {
        if (xmlHttp.status  ==   200 )  {
            parseResults();
        } 
    } 
}

function  parseResults()  {
    var  responseDiv  =  window.document.getElementById("responseDiv");
    var content = xmlHttp.responseText
    responseDiv.value = content;
}
</script>

 在这段js中,构造了一个Person对象,然后调用Json.js库的stringify方法,将person对象组装成Json格式的字符串发送到后台处理的servlet,当收到后台处理后返回的数据时,在页面里进行展示。

 

2 后台处理的Servlet,内容如下:

public class JSONExample extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(req,resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String json  =  readJSONStringFromRequestBody(req);
        
        // Use the JSON-Java binding library to create a JSON object in Java 
        JSONObject jsonObject  =   null ;
        String responseText = null;
        try{
           //将json字符串转化为JsonObject对象
           jsonObject  =   new  JSONObject(json);
           String gender = jsonObject.getBoolean("gender")?"男":"女";
           responseText  =   "You name is  "   +  jsonObject.getString( "name" )  +   " age is  " 
           +  jsonObject.getInt( "age" )  +   "  gender is "   + gender
           +  "  birthday is  "   +  jsonObject.getString( "birthday" );
           System.out.println("responseText="+responseText);
        } 
         catch (Exception pe)  {
           System.out.println( " ParseException:  "   +  pe.toString());
        } 
        //设置字符集,和页面编码统一,否则有可能乱码
        resp.setCharacterEncoding("utf-8");
        resp.setContentType( "text/xml" );
        resp.getWriter().print(responseText);
	}

	//读取前段post方法传递过来的信息
	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();
    } 
}

 在这个java类里,主要就是将从前端页面里得到的json字符串转换成JSONObject,然后调用它相应的方法,根据key值得到value值。

 

3 servlet在web.xml里注册

<servlet>  
        <servlet-name>JSONExample</servlet-name>  
        <servlet-class>  
        com.sinye.json.JSONExample</servlet-class>  
    </servlet>
    
    <servlet-mapping>  
        <servlet-name>JSONExample</servlet-name>  
        <url-pattern>/JSONExample</url-pattern>  
    </servlet-mapping>

 

这样,就完成了一个结合json的ajax简单例子,更多内容可以去json的官网:http://www.json.org/。另外,在这里面使用的json.js和json.jar都可以从官网招到,如果闲麻烦,可以直接在这里下载

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论
3 楼 hesihua 2011-12-27  
jsonObject  =   new  JSONObject(json);
你写这句话的时候不会报错吗?
2 楼 sinye 2011-04-02  
pm711 写道
你这JSON.JS没有这个JSON.stringify()方法

是的,但是可以调用。如果这个方法不行的话,可以调用toJSONString(),在此例中就是写成person.toJSONString()就可以了。
1 楼 pm711 2011-04-02  
你这JSON.JS没有这个JSON.stringify()方法

相关推荐

    ajax+json实例

    在这个例子中,服务器端通过`JsonResult`返回JSON格式的用户信息,客户端通过AJAX请求获取这些信息并解析显示。 **五、总结** AJAX+JSON在.NET环境中的应用大大提高了Web应用程序的交互性和效率,减少了不必要的...

    Json+ajax简单实例

    在这个“Json+ajax简单实例”中,我们将深入理解这两者如何协同工作,以及如何使用它们来创建交互式Web应用。 JSON是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript...

    AjaxJson 实例 AjaxJson

    例如,一个简单的 AjaxJson 示例代码可能如下: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'data.json', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr....

    php+ajax+json的简单实例

    在这个“php+ajax+json的简单实例”中,我们将深入理解这三个技术是如何协同工作的。 首先,PHP(Hypertext Preprocessor)是一种服务器端的脚本语言,主要用于开发Web应用程序。它能够处理用户提交的数据,生成...

    一个简单的JSON+AJAX

    在"一个简单的JSON+AJAX"的例子中,我们可以推测这个压缩包可能包含了一个名为`json.js`的文件,该文件可能是实现了一个简单的AJAX请求,以JSON格式交换数据的示例。以下是一个可能的`json.js`实现: ```javascript...

    php基于jquery的ajax技术传递json数据简单实例.docx

    PHP 基于 jQuery 的 Ajax 技术传递 JSON 数据简单实例 本文主要介绍了 PHP 基于 jQuery 的 Ajax 技术传递 JSON 数据方法,以完整实例形式分析了 PHP 基于 jQuery 的 Ajax 无刷新提交数据实现方法。下面是详细的知识...

    Ajax中使用JSON传输数据

    例如,一个简单的JSON对象可能如下所示: ```json { "name": "张三", "age": 30, "city": "北京" } ``` 在Ajax中,我们通常使用XMLHttpRequest对象来发送异步请求。当与服务器进行交互时,可以使用`send()`方法...

    AjaxJson实体类与依赖包

    在实际应用中,当后端服务器处理完请求后,可以创建一个`AjaxJson`实例,设置相应的状态码和消息,如果有必要,还可以将处理结果封装到"data"属性中,然后将这个对象转换为JSON字符串,通过HTTP响应发送给前端。...

    ajax,jQuery 例子大全,json例子

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

    jquery ajax用json传值实例asp.net

    总之,这个"jquery ajax用json传值实例 asp.net"是一个很好的学习资源,可以帮助初学者快速掌握如何在客户端和服务器之间使用AJAX和JSON进行数据交换。通过实践和理解这些基础概念,你可以进一步提升你的Web开发技能...

    jquery_ajax_json简单实例

    本实例将深入探讨如何利用jQuery的AJAX功能与JSON数据格式进行交互,以实现异步数据加载和更新,从而提高网页的用户体验。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和...

    ajax请求复杂的json数据实例

    本实例主要关注如何使用AJAX处理复杂的JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于机器解析和生成,因此在Web服务中广泛使用。 首先,我们需要...

    ajax调用java传送json的小例子

    主要是用到jquery的ajax,java中的hibernate4的调用mysql数据和struts2地址重定向,并把数据转换成json数据,经过html页面中的javascript调用后台数据,有添加,修改,删除,查询等简单功能,适用于有ajax初学者,...

    JSON AJAX例子

    以下是一个简单的AJAX请求的JavaScript示例: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'data.json', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr....

    struts2+jquery+json+ajax例子

    总结起来,"struts2+jquery+json+ajax"的例子展示了如何利用这些技术协同工作,实现一个无刷新的登录界面,提供流畅的用户体验。通过Struts2处理业务逻辑和数据验证,jQuery和Ajax负责前后端的通信,JSON作为数据...

    前台ajax与后台json传递

    在这个例子中,我们创建了一个新的XMLHttpRequest对象,设置请求方法为POST,目标URL为'/api/data',并指定了Content-Type为'application/json',表示我们将发送Json格式的数据。当请求状态改变时,我们检查...

    下载json,ajax传送对象的好帮手

    前端接收到这个响应后,可以简单地通过JavaScript解析JSON,将其转化为可以直接使用的JavaScript对象,然后更新DOM元素,完成页面动态更新。 在实际开发中,JSON的使用步骤大致如下: 1. **创建JSON对象**:在...

    使用Json的Ajax实例

    标题“使用Json的Ajax实例”意味着我们将探讨如何在AJAX请求中使用JSON进行数据的发送和接收。以下是一些关键知识点: 1. **创建JSON对象**:在JavaScript中,我们可以使用`JSON.stringify()`方法将JavaScript对象...

    json+AJAX例子

    在本例子中,“json+AJAX例子”展示了如何结合两者来实现动态的数据交互。 首先,让我们了解AJAX的工作原理。AJAX的核心是XMLHttpRequest对象,它允许JavaScript在后台与服务器进行通信,无需用户进行任何操作。在...

    ajax解析json实例

    在本实例中,我们将深入探讨如何使用Java生成JSON数据,并通过AJAX请求获取并解析这些数据。 1. JSON基础知识: JSON由键值对组成,键必须是字符串,用双引号包围,值可以是字符串、数字、布尔值、数组、对象或...

Global site tag (gtag.js) - Google Analytics