首先创建服务端返回的数据类型对象:
package com.studio.pojo.util;
import org.codehaus.jackson.map.ObjectMapper;
public class PlanResult {
//定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
//响应业务状态
private Integer status;
//相应消息
private String msg;
//相应中的数据
private Object data;
public static ObjectMapper getMAPPER() {
return MAPPER;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
创建json和对象转化的工具类:
package com.studio.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
/**
* 高效todo自定义响应结构
*/
public class JsonUtils {
//定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
/**
* 将对象转化为json字符串
* @param data
* @return
*/
public static String ObjectToJson(Object data){
try{
String string = MAPPER.writeValueAsString(data);
return string;
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
/**
* 将json字符串转化为对象
* @param jsonData
* @param beanType
* @param * @return
*/
public static T jsonToPojo(String jsonData, ClassbeanType){
try {
T t = MAPPER.readValue(jsonData, beanType);
return t;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 将json字符串数据转化为pojo对象list
* @param jsonData
* @param beanType
* @param * @return
*/
public static ListjsonToList(String jsonData, ClassbeanType){
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
try {
Listlist = MAPPER.readValue(jsonData, javaType);
return list;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
测试将返回对象转化为json字符串:
package com.studio.util;
import com.studio.pojo.util.PlanResult;
import java.util.HashMap;
import java.util.Map;
public class test {
public static void main(String[] args){
PlanResult result = new PlanResult();
MapresultMap = new HashMap<>();
resultMap.put("username","wangtianyuan");
resultMap.put("password","123456");
resultMap.put("accountEmail","1129988388@qq.com");
result.setData(resultMap);
result.setMsg("查询成功!");
result.setStatus(1);
System.out.println(JsonUtils.ObjectToJson(result));
}
}
输出结果:
{"status":1,"msg":"查询成功!","data":{"password":"123456","accountEmail":null,"username":"wangtianyuan"}}