AJAX使用JSON 进行数据传输介绍

xiaoxiao2026-08-14  24

AJAX做为一种页面异步请求机制,在改善用户体验上有良好的作用,AJAX中数据传输方式有很多种方式:字符串对的形式,XML形式,JSON。 上面几种的传输方式各有优点,字符串对的形式能解决不少简单的应用需要,但是涉及到复杂的JS对应的时候,字符串对就比较难以承担这样的任务。XML是个很好的表示方式,但是在JS层面的对象转换和传输,XML毕竟要借助第三方提供的包,而JSON作为JS原生的一种特性使开发者不用花大量的时间在JS对象和给AJAX传输的字符串间转换。 下面我们来看看,JSON是如何应用在AJAX传输数据的: 一.页面的组装数据: 1.文本字符串对的形式 name='test'&address='hangzhou' 2.XML的形式 <name> test </name> <address> hangzhou </address> 3.JSON var person={"name":"test","address":"hangzhou"} 1,2要种方式在拼凑成可以供AJAX传输用的文本字符串的时候比较麻烦,特别是当要传输的还是复杂的对象的时候。而JSON的方式,要得到给AJAX传输的文本字符串只需要下面一行代码: String newJSOString = person.toJSONString(); 就这样一句简单的转换语句就完成了,你再也不用为处理这些而烦恼。这就是 JSON 与其他数据格式之间最大的差异。如果使用 JSON,只需调用一个简单的函数,就可以获得经过格式化的数据。 二.发送请求 因为GET受到传输字符串大小的限制,下面举例的是AJAX的POST形式: var url = "test.jsp?timeStamp=" + new Date().getTime(); request.open("POST", url, true); request.onreadystatechange = callback; request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.send(person.toJSONString()); 这样就可以轻松利用 JSON 并将其数据请求到服务器 三。服务器端解析: 作为传输的协议,那么在程序的服务端就需要有配套的工具和包来解析对应的JSON字符串。 JSON在服务端的解析目前有很多支持包,在JAVA语言中, 可以使用的是 org.json 包, 代码如下: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StringBuffer Str = new StringBuffer(); String line = null; try { BufferedReader reader = request.getReader(); while ((line = reader.readLine()) != null) Str.append(line); } catch (Exception e) { //report an error } try { JSONObject jsonObject = new JSONObject(jb.toString()); } catch (ParseException e) { // crash and burn throw new IOException("Error parsing JSON request string"); }} 通过上面这些方式就可以通过JSON很好得完成了从客户端发送数据到服务端的一个解决方案。
转载请注明原文地址: https://www.6miu.com/read-5051209.html
最新回复(0)