zoukankan      html  css  js  c++  java
  • (九)springmvc之json的处理(服务端发送json数据到客户端)

    一、json处理方法有两种

        1:导入Spring需要json的jar包。(本例使用)

            使用@ResponseBody该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过         Response响应给客户端     

        

         2:springmvc.xml中配置转换json的配置。

       

    二、案例一:使用@ResponseBody

    •    依赖的包

        <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.5.1</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.5.1</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.5.1</version>
            </dependency>

    index.jsp

    <script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.json-2.4.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.form.js"></script>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
    function ajax_json_1(){
        var getURL = "<%=request.getContextPath()%>/jsonController/dogList?date="+new Date()+"";
        jQuery.get(getURL,function(jsonList){
            for(var i = 0;i<jsonList.length;i++){
                var dogBean = jsonList[i];
                window.alert(dogBean.dogid);
            }
        },"json");
    }
    </script>
    </head>
    <body>
    
        <a href="javascript:void(0);" onclick="ajax_json_1();">jQuery来访问_SpringMVC返回json对象</a>
    </body>

    controller

    package com.shyroke.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.shyroke.bean.DogBean;
    
    @Controller
    @RequestMapping(value="/jsonController")
    public class JsonController {
    
        
        @RequestMapping(value="/dogList")
        @ResponseBody
        public List<DogBean> getListDog(){
            List<DogBean> dogList=new ArrayList<DogBean>();
            DogBean dog1=new DogBean();
            dog1.setDogid("1");
            dog1.setDogname("dog1");
            
            DogBean dog2=new DogBean();
            dog2.setDogid("2");
            dog2.setDogname("dog2");
            
            dogList.add(dog1);
            dogList.add(dog2);
            return dogList;
        }
        
    }

    三、案例二:服务端使用原始的方式返回json数据,方法不需要有返回值

    • 同样需要引入上例的包

    <script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.json-2.4.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/script/jquery.form.js"></script>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">function ajax_json_2(){
        var getURL = "<%=request.getContextPath()%>/jsonController/dogBean?date="+new Date()+"";
        jQuery.get(getURL,function(jsonObj){
            window.alert(jsonObj.dogid + "		" + jsonObj.dogname);
        },"json");
    }
    
    </script>
    </head>
    <body>
        <a href="javascript:void(0);" onclick="ajax_json_2();">jQuery来访问_原始返回json对象</a>
    </body>

    controller

    package com.shyroke.controller;
    
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.fasterxml.jackson.annotation.JsonInclude.Include;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.SerializationFeature;
    import com.shyroke.bean.DogBean;
    
    @Controller
    @RequestMapping(value="/jsonController")
    public class JsonController {
     
        @RequestMapping(value="dogBean")
        public void GetDog(HttpServletRequest request,HttpServletResponse response) throws Exception{
            PrintWriter out=response.getWriter();
            
            DogBean dog1=new DogBean();
            dog1.setDogid("1");
            dog1.setDogname("dog1");
            
            /**
             * 转成json字符串。
             */
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
            // 配置mapper忽略空属性
            objectMapper.setSerializationInclusion(Include.NON_EMPTY);
    
            String jsonStr = objectMapper.writeValueAsString(dog1);
            
            out.print(jsonStr);
            out.flush();
            out.close();
        }
    }
  • 相关阅读:
    Spring Boot+Vue 项目前端_Vuejs环境搭建
    vue+element 数据表格分页
    vue+elementui 实现新增和修改共用一个弹框
    Vue删除数据成功后如何刷新表格数据
    vue中使用echart绑定点击事件进行路由切换
    Vue的生命周期
    添加访问量插件
    Docker部署的Gitlab平行迁移到另一台服务器上
    GLEAN: Generative Latent Bank for Large-Factor Image Super-Resolution【阅读笔记】
    Learning Continuous Image Representation with Local Implicit Image Function【阅读笔记】
  • 原文地址:https://www.cnblogs.com/shyroke/p/7778303.html
Copyright © 2011-2022 走看看