博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC杂记(1) 使用阿里巴巴的fastjson
阅读量:4702 次
发布时间:2019-06-09

本文共 3361 字,大约阅读时间需要 11 分钟。

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:

内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为中国PE第一股,市值超1000亿元。 

------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

1) 国产开源软件要支持的 

com.alibaba
fastjson
1.2.1

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 {    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));    }    @Override    public boolean canRead(Class
clazz, MediaType mediaType) { // JavaType javaType = getJavaType(clazz); // return this.objectMapper.canDeserialize(javaType) && // canRead(mediaType); return true; } @Override public boolean canWrite(Class
clazz, MediaType mediaType) { // return this.objectMapper.canSerialize(clazz) && canWrite(mediaType); return true; } @Override protected boolean supports(Class
clazz) { // should not be called, since we override canRead/Write instead throw new UnsupportedOperationException(); } @Override protected 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); } @Override protected 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) 配置 

WriteMapNullValue
QuoteFieldNames

 

转载于:https://www.cnblogs.com/AloneSword/p/4097941.html

你可能感兴趣的文章
SQL case when else
查看>>
SYS_CONTEXT 详细用法
查看>>
Pycharm配置autopep8让Python代码更符合pep8规范
查看>>
我的第一篇博客
查看>>
【C++算法与数据结构学习笔记------单链表实现多项式】
查看>>
C#垃圾回收机制
查看>>
31、任务三十一——表单联动
查看>>
python之hasattr、getattr和setattr函数
查看>>
maven使用阿里镜像配置文件
查看>>
Copy code from eclipse to word, save syntax.
查看>>
arguments.callee的作用及替换方案
查看>>
P2709 小B的询问
查看>>
PHP echo 和 print 语句
查看>>
第一讲 一个简单的Qt程序分析
查看>>
Centos 6.5下的OPENJDK卸载和SUN的JDK安装、环境变量配置
查看>>
poj 1979 Red and Black(dfs)
查看>>
【.Net基础03】HttpWebRequest模拟浏览器登陆
查看>>
zTree async 动态参数处理
查看>>
Oracle学习之常见错误整理
查看>>
数据库插入数据乱码问题
查看>>