使用Maven构建一jar工程:
实现对象和json字符串的相互转换需要添加依赖 jackson-databind :
(直接使用jar包的注意导入关联依赖包,图中所示)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
封装 对象-json字符串 互转 通用工具类 JsonUtils:
package com.qx.utils;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonUtils {
public static ObjectMapper objectMapper;
static {
objectMapper = new ObjectMapper();
}
/**
* 对象转json字符串
* @param value 对象
* @return json字符串
* @throws Exception
*/
public static String objectToJsonStr(Object value) throws Exception {
return objectMapper.writeValueAsString(value);
}
/**
* json字符串转对象
* @param content json字符串
* @param valueType 对象类型
* @return 对象
* @throws Exception
*/
public static <T> T objectFromJsonStr(String content,Class<T> valueType) throws Exception {
T obj = objectMapper.readValue(content, valueType);
return obj;
};
}
实体类User:
package com.qx.test;
public class User {
private Integer id;
private String username;
private String password;
//getter and setter 方法
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}
测试类
package com.qx.test;
import org.junit.Test;
import com.qx.utils.JsonUtils;
public class TestD {
@Test
public void test() {
User user=new User();
user.setId(1);
user.setUsername("张伟");
user.setPassword("123123");
try {
String content = JsonUtils.objectToJsonStr(user);
System.out.println(content);
System.out.println("<-------------------------->");
User user2 = JsonUtils.objectFromJsonStr(content, User.class);
System.out.println(user2);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行测试方法test, 控制台打印结果为: