package com.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
public class JsonUtil {
public JsonUtil(HttpServletRequest request,HttpServletResponse response){
this.request = request;
this.response = response;
}
/** 目前HttpServletRequest */
protected HttpServletRequest request;
/** 目前HttpServletResponse */
protected HttpServletResponse response;
protected PrintWriter writer;
public PrintWriter getWriter() {
try {
writer = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
return writer ;
}
public void setWriter(PrintWriter writer) {
this.writer = writer;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletResponse getResponse() {
return response;
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
// JSON
private void setJsonHeader(){
HttpServletResponse response = getResponse();
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", "Authentication");
}
/**
* 警告:請不要直接使用此函數,防止産生緩存問題
* 請考慮使用outObjString
**/
public void outString(String str) {
try {
PrintWriter out = getResponse().getWriter();
out.print(str);
} catch (IOException e) {
e.printStackTrace();
}
}
public void outObjString(Object obj, String code, String msg) {
setJsonHeader();
String jsonString =
"{" +
" \"code\": \"" + code + "\"," +
" \"msg\": \"" + msg + "\", " +
" \"data\": " + new Gson().toJson(obj) +
"}";
outString(jsonString);
}
public void outObjString(Object obj) {
setJsonHeader();
String jsonString = "{\"success\":true,\"data\":" + new Gson().toJson(obj) + "}";
outString(jsonString);
}
}
調用示例:
JsonUtil out = new JsonUtil(request, response);
out.outObjString(Object, "狀态碼", "狀态描述");