spring 4.x下让http请求返回json串

当前很多应用已经开始将响应返回为json串,所以基于springframework框架开发的服务端程序,让响应返回json字符串成为了一种常用手段。
这里介绍一下如何在spring-MVC框架下方便快捷的返回json字符串。

首先,需要在controller类的方法名头上加@ReponseBody注解,但是只增加这个注解是不够的,在使用httpclient4.5.x模拟post请求时,出现http status 406的错误:下载地址

Java代码 复制代码 收藏代码
1.406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)  
如果采用Spring-MVC框架开发,那么解决办法如下:
1)在spring-servlet.xml里增加 

Java代码 复制代码 收藏代码
1.<mvc:annotation-driven>
2.    <mvc:message-converters register-defaults="true">
3.        <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"
4.            p:supportedMediaTypes="*/*" />
5.    </mvc:message-converters>
6.</mvc:annotation-driven>  

2)maven项目,在pom.xml里增加 

Java代码 复制代码 收藏代码
1.<dependency>
2.    <groupId>org.codehaus.jackson</groupId>
3.    <artifactId>jackson-mapper-asl</artifactId>
4.    <version>1.9.13</version>
5.</dependency>
6.<dependency>
7.    <groupId>org.codehaus.jackson</groupId>
8.    <artifactId>jackson-core-asl</artifactId>
9.    <version>1.9.13</version>
10.</dependency>  

gradle项目,在build.gradle文件的dependencies项下增加 

Java代码 复制代码 收藏代码
1.compile ‘org.codehaus.jackson:jackson-mapper-asl:1.9.13‘
2.compile ‘org.codehaus.jackson:jackson-core-asl:1.9.13‘  

附:我在测试时用httpclient4.5.x模拟post请求时返回的数据 

Java代码 复制代码 收藏代码
1.response.toString():
2.HttpResponseProxy{HTTP/1.1 200 OK [Server: Apache-Coyote/1.1, Content-Type: application/json;charset=UTF-8, Transfer-Encoding: chunked, Date: Tue, 29 Jul 2015 08:42:29 GMT]}
3.
4.EntityUtils.toString(entity, "utf-8"):
5.{"code":0,"flag":false,"message":"用户名错误,请填写手机号码或者Email!","uid":-1,"mobile":null,"email":null,"username":null}  
时间: 2024-10-23 11:01:18

spring 4.x下让http请求返回json串的相关文章

【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-4]返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html [Spring学习笔记-MVC-3.1]SpringMVC返回Json数据-

shiro异步请求返回JSON响应

shiro异步请求返回JSON响应 需求1:当shiro请求资源,但是没有进行认证时,默认是进行重定向,现在需要返回JSON响应.注意异步请求,服务器重定向后,ajax拿到的是浏览器重定向后的到的页面源码. 解决2: 自定义FormAuthenticationFilter.覆盖onAccessDenied方法.返回JSON字符串.并将自定义的过滤器添加到ShiroFilterFactoryBean,键的名称为authc. 需求2:ShiroFilterFactoryBean用注解时,过滤的url

swift http请求返回json数据并解析

1 AppDelegate.swift // // AppDelegate.swift // QQDemo // // Created by 赵超 on 14-6-21. // Copyright (c) 2014年 赵超. All rights reserved. // import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? fun

ajax请求返回Json字符串运用highcharts数据图表展现数据

[1].[图片] Json字符串和highcharts数据图表展现.jpg 跳至 [1] [2] [2].[代码] Json字符串和highcharts数据图表展现 跳至[1] [2] 001 /* 002 * Filename: OQtyOrPriceReport.js 003 * Description:客户订单数量和价格报表分析 004 * Created: 2013.11.14 005 * Author : liangjw 006 * Company:Copyright (C) 2013

Python3.x:访问带参数链接并且获取返回json串

Python3.x:访问带参数链接并且获取返回json串 核心代码: import json import xml.dom.minidom from urllib import request, parse from sqlalchemy import func url = "http://**********/queryTradingByProdTypeData.do" headerDict = {'Host': 'query.sse.com.cn', 'User-Agent': '

【Spring MVC】spring mvc中相同的url请求返回不同的结果

在项目中凡是使用Spring MVC这种控制器的,大多都是返回JSON数据对象,或者JSP页面. 但是相同的URL请求如何让他自动的选择放回的是什么? 在这里有由于鄙人没有亲自测试过,就不敢乱贴代码,只把别人写的引用一下,以防未来某天需要而忘却. 引用地址:http://my.oschina.net/wzlee/blog/262205

springmvc通过ajax异步请求返回json格式数据

jsp 首先创建index.jsp页面 <script type="text/javascript"> $(function () { $("#username").click(function () { $.ajax({ url: "list",//请求地址 type: "POST", dataType: "json", success: function(data) {//data是默认的,

ajax请求返回json字符串/json对象 处理

1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: PrintWriter out = httpServletResponse.getWriter(): ObjectMapper mapper = new ObjectMapper(); Map map = new HashMap(); map.put("name","zz");

上手spring boot项目(四)之springboot如何返回json数据

在springboot整合thymeleaf中,经常会在HTML页面中接收来自服务器的json数据,然后处理json数据并在页面上渲染.那么如何在服务器中返回json类型的数据呢? 1.使用@ResponseBody注解 该注解用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的 数据如:json,xml 等,通过 Response 响应给客户端 在controller的方法上增加@RespongBody @RequestMappi