zoukankan      html  css  js  c++  java
  • java 返回 json格式

    package net.joystart.common.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletResponse;
    
    import net.joystart.common.util.ConstantUtil;
    import net.joystart.common.util.MessageResult;
    import net.joystart.common.util.date.DateSerializer;
    import net.joystart.common.util.date.DateToStringSerializer;
    import net.joystart.common.util.date.DateToStringYYYYMMDDSerializer;
    import net.joystart.common.util.gsonAdapter.NullStringToEmptyAdapterFactory;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.propertyeditors.CustomDateEditor;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.WebDataBinder;
    import org.springframework.web.bind.annotation.InitBinder;
    
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    import com.google.gson.JsonSerializer;
    import com.google.gson.TypeAdapter;
    import com.google.gson.reflect.TypeToken;
    import com.google.gson.stream.JsonWriter;
    
    /**
     * 
     * @author yang yanqing
     * @date 2016年7月7日
     * BaseController 基础控制器
     */
    @Controller
    public class BaseController {
    	
    	protected Logger logger = LoggerFactory.getLogger(this.getClass());
    	
    	@Deprecated
    	protected int pageSize = 20;
    	@Deprecated
    	protected int pageNumber = 1;
    	
    	public String toJson(Object obj){
    		 GsonBuilder gb = new GsonBuilder();
    	     gb.registerTypeAdapter(java.util.Date.class, new DateToStringYYYYMMDDSerializer());
    	     Gson gson = gb.create();
    		return gson.toJson(obj);
    	}
    	
    	public void out(HttpServletResponse response,Object result){
    		try {
                //浏览器用utf8来解析返回的数据  
    			response.setHeader("Content-type", "text/html;charset=UTF-8");  
    			//servlet用UTF-8转码,而不是用默认的ISO8859  
    			response.setCharacterEncoding(ConstantUtil.UTF_CODE);  
    			PrintWriter writer = response.getWriter();
    			GsonBuilder gb = new GsonBuilder();
    		    gb.registerTypeAdapter(java.util.Date.class, new DateSerializer()).setDateFormat(DateFormat.LONG);
    		    Gson gson = gb.create();
    			writer.print(gson.toJson(result) );
    		} catch (IOException e) {
    			
    			e.printStackTrace();
    		}
    		finally{
    			
    		}
    	}
    	public void outEd(HttpServletResponse response,Object result){
    		try {
                //浏览器用utf8来解析返回的数据  
    			response.setHeader("Content-type", "application/json;charset=UTF-8"); 
    			response.setContentType("application/json;charset=UTF-8");
    			//servlet用UTF-8转码,而不是用默认的ISO8859  
    			response.setCharacterEncoding(ConstantUtil.UTF_CODE);  
    			PrintWriter writer = response.getWriter();
    			GsonBuilder gb = new GsonBuilder();
    		    gb.registerTypeAdapter(java.util.Date.class, new DateSerializer()).setDateFormat(DateFormat.LONG);
    		    Gson gson = gb.create();
    		    System.out.println(gson.toJson(result));
    			writer.print(gson.toJson(result));
    		} catch (IOException e) {
    			
    			e.printStackTrace();
    		}
    		finally{
    			
    		}
    	}
    	
    	public void out(HttpServletResponse response,Map messageMap){
    		try {
                //浏览器用utf8来解析返回的数据  
    			response.setHeader("Content-type", "text/html;charset=UTF-8");  
    			//servlet用UTF-8转码,而不是用默认的ISO8859  
    			response.setCharacterEncoding(ConstantUtil.UTF_CODE);  
    			PrintWriter writer = response.getWriter();
    			 GsonBuilder gb = new GsonBuilder();
    		     gb.registerTypeAdapter(java.util.Date.class, new DateSerializer()).setDateFormat(DateFormat.LONG);
    		     Gson gson = gb.create();
    			writer.print(gson.toJson(messageMap) );
    		} catch (IOException e) {
    			
    			e.printStackTrace();
    		}finally{
    			
    		}
    	}
    	
    	public void webOut(HttpServletResponse response,Map messageMap){
    		try {
                //浏览器用utf8来解析返回的数据  
    			response.setHeader("Content-type", "text/html;charset=UTF-8");  
    			//servlet用UTF-8转码,而不是用默认的ISO8859  
    			response.setCharacterEncoding(ConstantUtil.UTF_CODE);  
    			PrintWriter writer = response.getWriter();
    			 GsonBuilder gb = new GsonBuilder();
    		     //gb.registerTypeAdapter(java.util.Date.class, new DateSerializer()).setDateFormat(DateFormat.LONG);
    		     gb.registerTypeAdapter(java.util.Date.class, new DateToStringSerializer());
    		     Gson gson = gb.create();
    			writer.print(gson.toJson(messageMap) );
    		} catch (IOException e) {
    			
    			e.printStackTrace();
    		}finally{
    			
    		}
    	}
    	
    	public void webOut(HttpServletResponse response,Object result){
    		try {
                //浏览器用utf8来解析返回的数据  
    			response.setHeader("Content-type", "text/html;charset=UTF-8");  
    			//servlet用UTF-8转码,而不是用默认的ISO8859  
    			response.setCharacterEncoding(ConstantUtil.UTF_CODE);  
    			PrintWriter writer = response.getWriter();
    			 GsonBuilder gb = new GsonBuilder();
    		     gb.registerTypeAdapter(java.util.Date.class, new DateToStringSerializer());
    		     Gson gson = gb.create();
    			writer.print(gson.toJson(result) );
    		} catch (IOException e) {
    			
    			e.printStackTrace();
    		}finally{
    			
    		}
    	}
    	
    	/**
    	 * 对象属性值为null时(只支持String,Integer类型),json中显示该属性,并将该属性值显示为""
    	 * @param response
    	 * @param result
    	 */
    	@SuppressWarnings({ "unchecked", "rawtypes" })
    	public void outWithNull(HttpServletResponse response,MessageResult result){
    		try {
                //浏览器用utf8来解析返回的数据  
    			response.setHeader("Content-type", "text/html;charset=UTF-8");  
    			//servlet用UTF-8转码,而不是用默认的ISO8859  
    			response.setCharacterEncoding("UTF-8");  
    			JsonWriter out = new JsonWriter(response.getWriter());
    			 GsonBuilder gb = new GsonBuilder();
    		     gb.registerTypeAdapterFactory(new NullStringToEmptyAdapterFactory()).registerTypeAdapter(java.util.Date.class, new DateSerializer()).setDateFormat(DateFormat.LONG);
    		     Gson gson = gb.create();
    //		     Gson g = new GsonBuilder().serializeNulls().create();
    		     TypeAdapter< MessageResult > adapter = gson.getAdapter(TypeToken.get(MessageResult.class));
    			((TypeAdapter) adapter).write(out, result);
    		} catch (IOException e) {
    			
    			e.printStackTrace();
    		}finally{
    			
    		}
    	}
    	
    	@InitBinder  
    	public void initBinder(WebDataBinder binder) {  
    		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");  
    		dateFormat.setLenient(false);  
    		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); 
    	}
    	
    	public int getPageSize() {
    		return pageSize;
    	}
    
    	public void setPageSize(int pageSize) {
    		this.pageSize = pageSize;
    	}
    
    	public int getPageNumber() {
    		return pageNumber;
    	}
    
    	public void setPageNumber(int pageNumber) {
    		this.pageNumber = pageNumber;
    	}
    
    }
    
  • 相关阅读:
    MySQL binlog中 format_desc event格式解析
    位bit和字节Byte
    MySQL利用mysqlbinlog模拟增量恢复
    mysqldump参数 --master-data详解
    开启MySQL二进制日志
    设置花里胡哨的Xshell字体与背景颜色(超全)
    Python操作MySQL数据库
    给定一个由括号([{)]}其中之一或多个组成的字符串判断是否符合左右括号成对标准,不同括号可任意嵌套
    给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)
    不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/7524549.html
Copyright © 2011-2022 走看看