您的位置:首页 > Web前端 > JavaScript

自定义JsonUtils实现对象和json字符串的相互转换

2017-08-24 21:40 791 查看
使用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, 控制台打印结果为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: