SpringMVC杂记(1) 使用阿里巴巴的fastjson
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
1) 国产开源软件要支持的
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.1</version> </dependency>
2) spring没有提供相应的HttpMessageConverter可以自己写一个。
package com.alibaba.fastjson.spring.support;import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset;import org.springframework.http.HttpInputMessage; import org.springframework.http.HttpOutputMessage; import org.springframework.http.MediaType; import org.springframework.http.converter.AbstractHttpMessageConverter; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotWritableException;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature;public class MappingFastJsonHttpMessageConverter extends AbstractHttpMessageConverter<Object> {public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");// fastjson特性参数private SerializerFeature[] serializerFeature;public SerializerFeature[] getSerializerFeature() {return serializerFeature;}public void setSerializerFeature(SerializerFeature[] serializerFeature) {this.serializerFeature = serializerFeature;}public MappingFastJsonHttpMessageConverter() {super(new MediaType("application", "json", DEFAULT_CHARSET));}@Overridepublic boolean canRead(Class<?> clazz, MediaType mediaType) {// JavaType javaType = getJavaType(clazz);// return this.objectMapper.canDeserialize(javaType) &&// canRead(mediaType);return true;}@Overridepublic boolean canWrite(Class<?> clazz, MediaType mediaType) {// return this.objectMapper.canSerialize(clazz) && canWrite(mediaType);return true;}@Overrideprotected boolean supports(Class<?> clazz) {// should not be called, since we override canRead/Write insteadthrow new UnsupportedOperationException();}@Overrideprotected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage)throws IOException, HttpMessageNotReadableException {ByteArrayOutputStream baos = new ByteArrayOutputStream();int i;while ((i = inputMessage.getBody().read()) != -1) {baos.write(i);}return JSON.parseArray(baos.toString(), clazz);}@Overrideprotected void writeInternal(Object o, HttpOutputMessage outputMessage)throws IOException, HttpMessageNotWritableException {String jsonString = JSON.toJSONString(o, serializerFeature);OutputStream out = outputMessage.getBody();out.write(jsonString.getBytes(DEFAULT_CHARSET));out.flush();}}
3) 配置
<mvc:annotation-driven><mvc:message-converters register-defaults="true" ><bean class="com.alibaba.fastjson.spring.support.MappingFastJsonHttpMessageConverter"><property name="supportedMediaTypes" value="application/json" /><property name="serializerFeature"><array><value>WriteMapNullValue</value><value>QuoteFieldNames</value></array></property></bean></mvc:message-converters> </mvc:annotation-driven>
转载于:https://www.cnblogs.com/AloneSword/p/4097941.html
SpringMVC杂记(1) 使用阿里巴巴的fastjson相关推荐
- SpringMVC杂记
SpringWebflow杂记(一) 框架初探,与SpringMVC的集成 SpringMVC杂记(一) 文件上传 SpringMVC杂记(二) 使用@ResponseBody出现乱码解决方法 Spr ...
- 阿里巴巴的FastJson数据解析介绍
阿里巴巴的FastJson数据解析介绍 本文简单介绍一下阿里巴巴的FastJson的json数据解析的简单用法. FastJson据说是目前Json数据解析最快捷的工具,虽然传闻会有一些bug,但是基 ...
- Json转换Bean太过复杂?试试阿里巴巴的FastJSON
阿里巴巴的JSON和BEAN的快速转化库FastJSON FastJSON 阿里巴巴JSON库:fastJson,既能解析JSON为Bean对象,又能转换Bean对象为JSON字符串]() 为什么使用 ...
- Jackson、FastJson快速入门(整合SpringMVC)
目录 1. 什么是 JSON 2. JSON 语法规则 3. JSON 与 JS 对象的关系 4. JSON 和 JS 对象互转 5. Jackson-数据格式转换 1. 环境搭建 2. 对象转jso ...
- mvc json 乱码_你了解JSON吗?——Jackson、FastJson在SpringMVC中的简单使用
原文参考分享自CSDN:你了解JSON吗?--Jackson.FastJson在SpringMVC中的简单使用_欢迎来到 Baret~H 的博客-CSDN博客 1. 什么是 JSON JSON(Jav ...
- SpringMVC整合fastjson、easyui 乱码问题
一.框架版本 SpringMVC:3.1.1.RELEASE fastjson:1.2.7 easyui :1.4.5 二.乱码现象 Action中使用@ResponseBody返回Json数据 ...
- SpringMVC(三)——JSON
文章目录 1. 什么是JSON 2. JSON 和 JavaScript 对象的关系 3. Controller返回JSON数据 3.1 使用Jackson解析 3.2 使用FastJson解析 1. ...
- SpringMVC(笔记)
MVC简介 普通的web项目每次都要进行手动的把jar包导进去,否则会报500,class not found [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VstjH ...
- Java学习笔记13-1——SpringMVC
文章目录 1.什么是MVC 回顾Servlet 2.什么是SpringMVC 概述 中心控制器 SpringMVC执行原理 3.第一个SpringMVC 程序 使用XML配置实现 使用注解实现 4.控 ...
最新文章
- Logistics回归数据集(testSet.txt)《机器学习实战》【美】Peter Harrington python3.6+pycharm完美实现代码
- access2003安装包百度云_《逗比羊电影》_逗比羊电影最新版下载
- 用AI击破传统行业痛点 “百度大脑行业创新论坛”将提7大行业解决方案
- JavaScript中的位置协议属性
- mysql or全表_mysql or条件可以使用索引而避免全表
- Linux 金字塔 的shell命令,linux下保留文件系统下剩余指定数目文件的shell脚本
- 漫话:如何给女朋友解释华为鸿蒙OS是怎样实现跨平台的?
- STM32的EXTI相关学习笔记
- Extract Any Audio Pro for Mac - mp3格式转换器
- Google C++测试框架系列高级篇:第一章 更多关于断言的知识
- php redis 令牌桶算法
- 汽车轮毂识别定位检测
- iOS开发中使用代码控制横竖屏的切换
- CVE-2017-11176: A step-by-step Linux Kernel exploitation (part 3/4)
- 腾讯云服务器+RAKSmart国内外服务器使用记录
- 一个炫酷的opengles2.0翻页效果(安卓上opengles2.0 翻书效果附源码)
- PromQL 直方图 跟踪请求的延迟或响应大小 99%的请求是在多少延迟下完成的?
- 北大计算机图灵班,北大首期“图灵班”开班
- Oracle 存储过程 问题记录
- 入坑刷机?手机各大模式了解一下