>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 21378 个阅读者 刷新本主题
 * 贴子主题:  Json格式实现数据传输 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-28 18:23:58     消息  查看  搜索  好友  邮件  复制  引用

                  
     java web中Gson、fastJson、JsonLib、jackson…提供了对json传输的支持

     json核心知识回顾

     1.json有两种格式

     (1)json对象:{key:value,key2:value2........}

    (2)json数组 :[value1,value2......]

     2.json对象的解析方式 对象.key

     json数组的解析方式  for循环遍历

     3.java对象转换json

     (1)bean或map 转换成json对象

     (2) list collection集合  转换成json数组

      一、向客户端返回json

    springMVC处理json的四个条件
* 1.导入jackson的jar包支持
* 2.在springMVC配置文件中开启mvc注解驱动  <mvc:annotation-driven>
* 3.在处理ajax请求发方法上加上注解@RequestBody
* 4.将要转换为json且相应到客户端的数据作为该方法的返回值
package net.javathinker.test;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.atguigu.dao.EmployeeDao;
import com.atguigu.domain.Employee;
/* *
* springMVC处理json的四个条件
* 1.导入jackson的jar包支持
* 2.在springMVC配置文件中开启mvc注解驱动  <mvc:annotation-driven>
* 3.在处理ajax请求发方法上加上注解@RequestBody
* 4.将要转换为json且相应到客户端的数据作为该方法的返回值
* @ResponseBody
* @author master
*
  */

@Controller
public  class  JsonController {
    @Autowired
     private  EmployeeDao employeeDao;
    
    @RequestMapping( " /testJson " )
    @ResponseBody
     public Collection<Employee>  testJson() {
        Collection<Employee> emps =  employeeDao.getAll();
         return  emps;
    }

}

二、接受服务器发送过来的json数据并以表格方式展示

<%@ page language= " java " contentType= " text/html; charset=UTF-8 "
    pageEncoding= " UTF-8 "%>
<%@ taglib uri= " http://java.sun.com/jsp/jstl/core " prefix= " c " %>
<!DOCTYPE html>
<html>
<head>
<meta charset= " UTF-8 ">
<title>testJson here</title>
<link rel= " stylesheet " href= " ${pageContext.servletContext.contextPath }/css/index_work.css ">
<script type= " text/javascript " src= " ${pageContext.servletContext.contextPath }/js/jquery-1.8.2.min.js "></script>
<script type= " text/javascript ">
    $(function(){
        $( " #btn " ).click(function(){
            $.ajax({
                url: " testJson " ,
                type: " POST " ,
                dataType: " json " ,
                success:function(msg){
                     // 方式一
                 /*      var tb = "<table>";
                    tb +="<tr><th>id</th><th>lastName</th><th>email</th><th>gender</th><th>departmentName</th></tr>"
                        for ( var i in msg) {
                            var emp = msg[i];
                            tb +="<tr><td>"+emp.id+"</td><td>"+emp.lastName+"</td><td>"+emp.email+"</td><td>"+emp.gender+"</td><td>"+emp.department.id+"</td></tr>";
                        }
                    tb +="</table>"
                    $("body").append(tb);  */

                    
                     // 方式二
                    $( " body ").append( " <table></table> " );
                    $( " table ").append( " <tr><th>id</th><th>lastName</th><th>email</th><th>gender</th><th>departmentName</th></tr> " );
                     for (  var i  in  msg) {
                         var emp =  msg[i];
                        $( " table ").append( " <tr><td> "+emp.id+ " </td><td> "+emp.lastName+ " </td><td> "+emp.email+ " </td><td> "+emp.gender+ " </td><td> "+emp.department.id+ " </td></tr> " );
                    }
                    
                                             // alert(msg);
                     /*
                        [
                        {"id":1001,"lastName":"E-AA","email":"aa@163.com","gender":1,"department":{"id":101,"departmentName":"D-AA"}},
                        {"id":1002,"lastName":"E-BB","email":"bb@163.com","gender":1,"department":{"id":102,"departmentName":"D-BB"}},
                        {"id":1003,"lastName":"E-CC","email":"cc@163.com","gender":0,"department":{"id":103,"departmentName":"D-CC"}},
                        {"id":1004,"lastName":"E-DD","email":"dd@163.com","gender":0,"department":{"id":104,"departmentName":"D-DD"}},
                        {"id":1005,"lastName":"E-EE","email":"ee@163.com","gender":1,"department":{"id":105,"departmentName":"D-EE"}}
                        ]
                     */

             /*      for ( var i in msg) {
                        var emp = msg[i];
                        alert("lastName="+emp.lastName+"email="+emp.email+"department="+emp.department+"departmentName="+emp.department.departmentName)
                    }
                      */

                    
                }
            });
        });
    });
</script>
</head>
<body>

<a href =  " testJson ">testJson</a>
<br/>
<br/>
<br/>
<input id= " btn " type= " button " value= " 测试Ajax ">

</body>
</html>

     展示结果

     点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

                  
----------------------------
原文链接:https://www.cnblogs.com/lsk-130602/p/12238745.html

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-01-29 17:37:44 重新编辑]
  Java面向对象编程-->输入与输出(上)
  JavaWeb开发-->Web运作原理(Ⅳ)
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->通过JDBC API访问数据库
  精通Spring-->虚拟DOM和render()函数
  Vue3开发-->绑定表单
  JSP中使用会话Session
  Servlet 国际化
  在JSP中如何取得form表单中被选中的radio项的值
  servlet三种方式实现servlet接口
  java生成图片验证码--封装生成图片验证码的工具类
  自查Web应用缺陷的有效测试方法
  Java Web开发 快速入门
  使用Java Mail API收发邮件
  JSP实现分页展示MySQL数据库中的数据
  mysql ON DUPLICATE KEY UPDATE 引起自增ID变化的解决办法
  开发Web服务的几种框架的对比:XFire和Axis2
  深度介绍响应式编程
  如何在JavaWeb中使文章可以分享到微信朋友圈
  Servlet–Listener、Filter、Decorator之用法详解(转移自: 《...
  Java Web前端到后台常用框架介绍
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。