您的位置:首页 > 编程语言 > Java开发

java中自定义封装json以及和对象的转换

2017-10-26 00:23 826 查看

首先创建服务端返回的数据类型对象:

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 <T>
* @return
*/
public static <T> T jsonToPojo(String jsonData, Class<T> beanType){
try {
T t = MAPPER.readValue(jsonData, beanType);
return t;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

/**
* 将json字符串数据转化为pojo对象list
* @param jsonData
* @param beanType
* @param <T>
* @return
*/
public static <T> List<T> jsonToList(String jsonData, Class<T> beanType){
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
try {
List<T> list = 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();
Map<String, Object> resultMap = 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"}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐