首页>代码>spring mvc+spring整合cxf服务端和客户端之间访问(jaxws与jaxrs的使用)>/WebServiceDemoAndSpringMVC/src/main/java/com/jbw/jsonProvider/GsonProvider.java
package com.jbw.jsonProvider;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;

import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.MessageBodyReader;
import javax.ws.rs.ext.MessageBodyWriter;
import javax.ws.rs.ext.Provider;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

@Provider
@Produces("application/json")
@Consumes("application/json")
public class GsonProvider implements MessageBodyWriter<Object>, MessageBodyReader<Object> {

	private final Gson gson;

	public GsonProvider() {
		gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
	}

	public long getSize(Object arg0, Class<?> arg1, Type arg2, Annotation[] arg3, MediaType arg4) {
		return -1;
	}

	public boolean isWriteable(Class<?> arg0, Type arg1, Annotation[] arg2, MediaType arg3) {
		return true;
	}

	public void writeTo(Object obj, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType,
			MultivaluedMap<String, Object> multivaluedMap, OutputStream entityStream)
			throws IOException, WebApplicationException {
		Type jsonType;
		if (type.equals(genericType)) {
			jsonType = type;
		} else {
			jsonType = genericType;
		}
		entityStream.write(gson.toJson(obj, jsonType).getBytes("UTF-8"));
	}

	public boolean isReadable(Class<?> arg0, Type arg1, Annotation[] arg2, MediaType arg3) {
		return true;
	}

	public Object readFrom(Class<Object> type, Type genericType, Annotation[] annotations, MediaType mediaType,
			MultivaluedMap<String, String> multivaluedMap, InputStream entityStream)
			throws IOException, WebApplicationException {
		Type jsonType;
		if (type.equals(genericType)) {
			jsonType = type;
		} else {
			jsonType = genericType;
		}
		return gson.fromJson(new InputStreamReader(entityStream, "UTF-8"), jsonType);
	}

}
最近下载更多
liweiyishuo  LV3 2021年12月2日
miaozhenyu  LV2 2020年4月9日
eddxbb  LV3 2019年9月9日
wsupsup  LV16 2019年8月12日
wbbhappy  LV13 2019年2月21日
zhu6272051  LV1 2019年2月20日
jywdream  LV11 2019年2月13日
x646936674  LV10 2018年10月20日
67806686  LV1 2018年7月20日
ccccjb  LV3 2018年6月8日
最近浏览更多
我睡觉时不困  LV7 2022年11月19日
微信网友_6013757501329408  LV1 2022年6月22日
gaotieyou  LV5 2022年4月11日
liweiyishuo  LV3 2021年12月2日
郭亚鹏  LV12 2021年8月10日
一朝两卜視 2021年8月10日
暂无贡献等级
329512801  LV28 2021年6月23日
GameName  LV2 2021年6月7日
gao123qq  LV21 2021年5月7日
haishen  LV8 2021年4月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友