Java-web接口开发

接口返回的Json数据格式如下:

    {"code":" ","msg":" ","time":1464937933230,"object":{}}

Json格式数据中的“code”属性是响应状态码,是标志接口数据的状态

接口基类

Json数据的基类

public class AbstractJsonObject {
    //code
    private String code;
    //msg
    private String msg;

    private Long time = new Date().getTime();

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    /**
     * @return the time
     */
    public Long getTime() {
        return time;
    }

    /**
     * @param time
     *  the time to set
     */
    public void setTime(Long time) {
        this.time = time;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public void setContent(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    // StatusObject下面会实现
    public void setStatusObject(StatusObject statusObject) {
        this.code = statusObject.getCode();
        this.msg = statusObject.getMsg();
    }
}

StatusObject是一个状态对象,封装了状态码(code)和状态信息(msg)

public class StatusObject {
    // 状态码
    private String code;

    // 状态信息
    private String msg;

    public StatusObject(String code, String msg) {
        super();
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

}

建立Json对象类SingleObject


public class SingleObject extends AbstractJsonObject {

    private Object object;

    public Object getObject() {
        return object;
    }

    public void setObject(Object object) {
        this.object = object;
    }

}

JsonUtils生成json数据和解析json数据

public class JsonUtils {
    static ObjectMapper objectMapper;
    /**
     * 解析json
     * 
     * @param content
     * @param valueType
     * @return
     */
    public static <T> T fromJson(String content, Class<T> valueType) {
        if (objectMapper == null) {
            objectMapper = new ObjectMapper();
        }
        try {
            return objectMapper.readValue(content, valueType);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 生成json
     * 
     * @param object
     * @return
     */
    public static String toJson(Object object) {
        if (objectMapper == null) {
            objectMapper = new ObjectMapper();
        }
        try {
            return objectMapper.writeValueAsString(object);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

在使用的时候

    Object obj = new Object();
    SingleObject singleObject = new SingleObject();
    singleObject.setItems(obj);
    singleObject.setStatusObject(xxx);
    String responseText = JsonUtils.toJson(singleObject);
    ResponseUtils.renderJson(response, responseText);

ResponseUtils是将返回的json数据写入到response中

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;


/**
 * HttpServletResponse帮助类
 */
public class ResponseUtils {

    /**
     * 发送文本。使用UTF-8编码。
     * 
     * @param response
     *            HttpServletResponse
     * @param text
     *            发送的字符串
     */
    public static void renderText(HttpServletResponse response, String text) {
        render(response, "text/plain;charset=UTF-8", text);
    }

    public static void renderJson(HttpServletResponse response, String text) {
        // System.out.print(text);
        render(response, "text/plain;charset=UTF-8", text);
    }

    /**
     * 发送内容。使用UTF-8编码。
     * 
     * @param response
     * @param contentType
     * @param text
     */
    public static void render(HttpServletResponse response, String contentType, String text) {
        response.setContentType(contentType);
        response.setCharacterEncoding("utf-8");
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        try {
            response.getWriter().write(text);
        } catch (IOException e) {
        }
    }


    /**
     * @Title: renderJson
     * @Description:(页面异步回调返回Json)
     */
    public static void renderJson(HttpServletResponse response, Object obj) {
        String s = JsonUtils.toJson(obj);
        response.setContentType("text/plain;charset=UTF-8");
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        try {
            response.getWriter().write(s);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

猜你喜欢

转载自blog.csdn.net/sysuzhyupeng/article/details/81041142