Java API接口返回不是JSON的解决方案,SpringMVC返回JSON配置。

JSON 2016-08-22 16:11:01 18707

前几天遇到个问题,在 Java  IOS Android 提供的API 接口的时候,IOS 接收到的是IO 流信息。而 Java  Android 使用木有任何问题,仔细的观察发现了蹊跷。如图。

如果Content-Type 是非 application/json 的都有问题,虽然小部分也是可以的,但是application/json 才是真的没问题。

个人的理解为什么 Java  Android 可以,而IOS 不行呢, Java  Android 在读取接口数据的时候首先框架上会有多方面的处理,其次我发现 Java  Android 好像浏览器一样,先是识别的数据,根据数据类识别类型,而不是优先根据文件的返回类型(Content-Type )来决定的。

——这只是个猜测。别认真

下面我针对SpringMVC 来说说配置解决。在我们的SpringMVC 配置文件中,也就是一般命名为spring-mvc.xml 中配置如下:

<!-- 这个一定得有,注意了,如果其他配置也有需要这个,已经配置了,那不必了 -->
<mvc:annotation-driven  />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	<property name="messageConverters">
		<list>
			<!--json转换器-->
			<ref bean="mappingJacksonHttpMessageConverter" />
		</list>
	</property>
</bean>

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">  
	<property name="messageConverters">  
        <list>  
               <ref bean="mappingJacksonHttpMessageConverter" />  
        </list>  
    </property>  
</bean>  
        
<bean id="mappingJacksonHttpMessageConverter"  
    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
     <property name = "supportedMediaTypes">  
		  <list>  
		    <bean class="org.springframework.http.MediaType">  
		     <constructor-arg index="0" value="text"/>  
		     <constructor-arg index="1" value="plain"/>  
		     <constructor-arg index="2" value="UTF-8"/>  
		    </bean>  
		    <bean class="org.springframework.http.MediaType">  
		     <constructor-arg index="0" value="*"/>  
		     <constructor-arg index="1" value="*"/>  
		     <constructor-arg index="2" value="UTF-8"/>  
		    </bean>  
		    <bean class="org.springframework.http.MediaType">  
		     <constructor-arg index="0" value="text"/>  
		     <constructor-arg index="1" value="*"/>  
		     <constructor-arg index="2" value="UTF-8"/>  
		    </bean>  
		     <bean class="org.springframework.http.MediaType">  
		     <constructor-arg index="0" value="application"/>  
		     <constructor-arg index="1" value="json"/>  
		     <constructor-arg index="2" value="UTF-8"/>  
		    </bean>  
		  </list>  
	</property>  
</bean> 

配置后返回如图:

这就是OK了,不管怎么用都是 JSON  了,除非你接收的时候,你是用Text 类型的接收。

如果是其他框架,请用httpResponse 输出的时候,指定Content-Type application/json 即可。

有问题加群交流。


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/124.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Java API接口返回不是JSON解决方案SpringMVC返回JSON配置
JSOUP 教程,JSOUP请求JSON ,JSOUP返回JSON 数据
CDN 请求返回 connection reset by peer,被拦截请求解决方案
JQuery Ajax四种写法,Ajax请求返回JSON 操作Demo
Java 之 HTTP请求乱码解决,GZIP 返回值乱码解决
Elasticsearch 随机返回数据 API
Httpclent 请求限制,判断返回类型和返回数据大小
Elasticsearch 聚合(aggregation)查询返回所有
天气API,全国天气 JSON API接口,可以获取十五天的天气预报
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报
最新文章
Flink 在又拍云日志批处理中的实践 5337
个推异常值检测和实战应用-又拍云 946
TCP 和 UDP协议详细讲解,优缺点分析讲解 6572
URL中乱七八糟的字符讲解,来源以及如何解决 4244
HTTP/3 来了,您真的了解它么? 5350
技术选型:为什么批处理我们却选择了Flink 1867
这些表情包你有吗?一起来 Battle 啊 2859
当我谈 HTTP 时,我谈些什么? 11167
新浪短链(t.cn)最新申请官方API的方法讲解。 68114
QUIC / HTTP3 协议详细分析讲解 8932
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 646009
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 592274
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 492699
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 481164
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 470194
Elasticsearch教程(四) elasticsearch head 插件安装和使用 418218
免费天气API,天气JSON API,不限次数获取十五天的天气预报 226891
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 212680
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 199311
Elasticsearch教程(一),全程直播(小白级别) 185533
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...