Java中Json对象与POJO(java对象,JavaBean)的相互转换

 

概述

使用Maven依赖和工具类集成的方式,可以在代码中直接调用工具类进行转换

方法

Maven依赖


	com.fasterxml.jackson.core
	jackson-databind
	2.3.2

工具类 JsonUtils

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * @Description: 自定义响应结构, 转换类
 */
public class JsonUtils {

    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();

    /**
     * 将对象转换成json字符串。
     * 

Title: pojoToJson

*

Description:

* @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 json数据 * @param clazz 对象中的object类型 * @return */ public static T jsonToPojo(String jsonData, Class beanType) { try { T t = MAPPER.readValue(jsonData, beanType); return t; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将json数据转换成pojo对象list *

Title: jsonToList

*

Description:

* @param jsonData * @param beanType * @return */ public static List jsonToList(String jsonData, Class beanType) { JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); try { List list = MAPPER.readValue(jsonData, javaType); return list; } catch (Exception e) { e.printStackTrace(); } return null; } }

使用

pojo转json

String jsonString = JsonUtils.objectToJson(PojoName);

json转pojo格式

ClassName className = JsonUtils.jsonToPojo(JsonString, ClassName.class)

比如

User user = new User();
user.setUsername("admin");
user.setPassword("123456");

String jsonStr = JsonUtils.objectToJson(user);

User result = JsonUtils.jsonToPojo(jsonStr, User.class);

System.out.println(result.getUsername());

 

你可能感兴趣的:(经验)