/** * Copyright (c) http://www.hao-se.cn Ltd.,2007 All rights reserved. */ package org.json.me.util; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.me.JSONObject; public class JsonMVCUtil { public static void jsonResponse(JSONObject jsonData, HttpServletRequest request, HttpServletResponse response) throws Exception { // check whether it is script Tag... // which is called by JSON boolean scriptTag = false; String cb = request.getParameter("callback"); try { if (cb != null) { scriptTag = true; response.setContentType("text/javascript;charset=UTF-8"); } else { response.setContentType("application/x-json;charset=UTF-8"); } PrintWriter out = response.getWriter(); if (scriptTag) { out.write(cb + "("); } response.getWriter().print(jsonData); if (scriptTag) { out.write(");"); } } catch (Exception e) { e.printStackTrace(); } } /** * @param jsonData * @param request * @param response * @throws Exception */ public static void jsonErrorsResponse(JSONObject jsonData, HttpServletRequest request, HttpServletResponse response) throws Exception { try { response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(jsonData); } catch (Exception e) { e.printStackTrace(); } } public static void jsonOkResponse(String okStr, HttpServletRequest request, HttpServletResponse response) throws Exception { try { JSONObject jsonResult = new JSONObject(); jsonResult.put("success", true); jsonResult.put("info", okStr); response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(jsonResult); } catch (Exception e) { e.printStackTrace(); } } public static void jsonFailResponse(String failStr, HttpServletRequest request, HttpServletResponse response) throws Exception { try { JSONObject jsonResult = new JSONObject(); jsonResult.put("failure", true); jsonResult.put("errorInfo", failStr); response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(jsonResult); } catch (Exception e) { e.printStackTrace(); } } }