一、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 + "\t\t" + 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();
}
}

(九)springmvc之json的处理(服务端发送json数据到客户端)的更多相关文章

  1. JSON入门指南--服务端处理JSON

    平时公司使用的ASP.NET MVC3来开发Web项目,其实在ASP.NET中已经原生的支持JSON.所以基本不需要引进Newtonsoft.Json.dll.下面看在MVC4中,后台生成JSON数据 ...

  2. Query通过Ajax向PHP服务端发送请求并返回JSON数据

    Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...

  3. jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

    SON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教 ...

  4. 【转】C# client 与java netty 服务端的简单通信,客户端采用Unity

    http://blog.csdn.net/wilsonke/article/details/24721057 近日根据官方提供的通信例子自己写了一个关于Unity(C#)和后台通信的类,拿出来和大家分 ...

  5. Android从服务端获取json解析显示在客户端上面

    Android从服务端获取json解析显示在客户端上面 百度经验:jingyan.baidu.com 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Jso ...

  6. jq ajax传递json对象到服务端及contentType的用法

    目录 0.一般情况下,通过键值对的方式将参数传递到服务端 1.ajax 传递复杂json对象到服务端 2.content-Type 对asp.net mvc项目的重要性 0.一般情况下,通过键值对的方 ...

  7. fastjson解析服务端返回的数据

    1.配置依赖 //fastjson api 'com.alibaba:fastjson:1.2.44' 2.设计服务端返回的数据 {},{},{}]} 3.编写bean类,特别注意,要和服务端返回的类 ...

  8. Spring Boot 集成 WebSocket 实现服务端推送消息到客户端

    假设有这样一个场景:服务端的资源经常在更新,客户端需要尽量及时地了解到这些更新发生后展示给用户,如果是 HTTP 1.1,通常会开启 ajax 请求询问服务端是否有更新,通过定时器反复轮询服务端响应的 ...

  9. iOS:根据日志去定位网络请求发生的错误是由于服务端造成的,还是客户端造成的?

    一.介绍 在项目开发中,服务端和客户端的协作尤为重要,而连接它们的最重要的环节之一就是网络请求,对于服务端而言,如果这个环节出现了错误,那么安全性就无从谈起,同时对于客户端而言,如果这个模块出现了错误 ...

随机推荐

  1. What is the use of c# “Yield” keyword ?

    What is the use of c# “Yield” keyword ? “Yield keyword helps us to do custom stateful iteration over ...

  2. 阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08

    阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08

  3. VSCode 代码格式化 快捷键

    Visual Studio Code可以通过以下快捷键 格式化代码: On Windows  Shift + Alt + F On Mac  Shift + Option + F On Ubuntu ...

  4. “用户名不在 sudoers文件中,此事将被报告” 解决方案

    第一次接触Docker是在CentOS上搭建的,没想到第一步就被弄懵了:执行sudo时提示“XXX 不在sudoers文件中,此事将被报告”. 这才刚开始就遇到个未知问题,于是上网找了下解决方法,嗨, ...

  5. ThinkPhp5 mongodb 使用自定义objectID出错解决

    在Tp5中使用mongodb 使用自定义ObjectId时报错:Cannot use object of type MongoDB\\BSON\\ObjectID as array 查询源码发现在to ...

  6. 初始化jsp页面下拉选备选项【我】

    将下列 script标签放到页面的最下端 <!-- 初始化的全局变量,供js中使用,主要拼接下拉选的初始化值 --> <script type="text/javascri ...

  7. Sql Server 数字金额转中文金额 函数

    在做一些订单金额.合同金额转换的时候,经常会遇到数字转成中文的情况,所以整理了一个数字转中文的函数: /* 说明:数字金额转中文金额 示例:187.4 转成 壹佰捌拾柒圆肆角整 */ ,)) ) BE ...

  8. Delphi中动态加载TreeView信息

    unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  9. mysql为字段添加或删除自增属性

    删除自增属性: ALTER TABLE `members` CHANGE uid uid INT(10) UNSIGNED NOT NULL ; 添加自增属性: ALTER TABLE `member ...

  10. jsplumb 流程图,常用功能配置记录

    前言: jsplumb 有2个版本一个Toolkit Edition(付费版),另外一个就是Community Edition(社区版本).Toolkit Edition版本功能集成的比较丰富,社区版 ...