1,User 对象
- package com.st.json;
- import java.util.Date;
- /**
- * @Description: JSON 序列化和反序列化使用的 User 类
- * @author Mr.Li
- * @date 2018 年 4 月 21 日 下午 10:55:34
- */
- public class User {
- private Integer id;
- private String name;
- private Integer age;
- private Date birthday;
- private String email;
- public Integer getId() {return id;}
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- public Date getBirthday() {
- return birthday;
- }
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- @Override
- public String toString() {
- return "User [id=" + id + ", name=" + name + ", age=" + age + ", birthday=" + birthday + ", email=" + email
- + "]";
- }
- public User(Integer id, String name, Integer age, Date birthday, String email) {
- super();
- this.id = id;
- this.name = name;
- this.age = age;
- this.birthday = birthday;
- this.email = email;
- }
- public User() {
- super();
- // TODO Auto-generated constructor stub
- }
- }
2,JacksonUtil 工具类
- package com.st.json;
- import java.io.IOException;
- import java.io.StringWriter;
- import com.fasterxml.jackson.core.JsonFactory;
- import com.fasterxml.jackson.core.JsonGenerator;
- import com.fasterxml.jackson.core.JsonParseException;
- import com.fasterxml.jackson.databind.JsonMappingException;
- import com.fasterxml.jackson.databind.ObjectMapper;
- /**
- * @Description: Jackson 对象与 json 互转工具类
- * @author Mr.Li
- * @date 2018 年 4 月 22 日 上午 12:30:15
- */
- public class JacksonUtil {
- private static ObjectMapper mapper = new ObjectMapper();
- public static String BeanToJson(Object obj) throws IOException {
- StringWriter sw = new StringWriter();
- JsonGenerator gen = new JsonFactory().createGenerator(sw);
- mapper.writeValue(gen, obj);
- gen.close();
- return sw.toString();
- }
- public static <T> T JsonToBean(String jsonStr, Class<T> objClass)
- throws JsonParseException, JsonMappingException, IOException {
- return mapper.readValue(jsonStr, objClass);
- }
- }
3,Jackson 对象与 json 互转测试
- package com.st.json;
- import java.io.IOException;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.List;
- import com.fasterxml.jackson.core.JsonParseException;
- import com.fasterxml.jackson.databind.JsonMappingException;
- /**
- * @Description: Jackson 对象与 json 互转测试
- * @author Mr.Li
- * @date 2018 年 4 月 22 日 上午 12:39:39
- */
- public class JacksonUtilTest {
- public static void main(String[] args) throws ParseException, IOException {
- beanTojack();
- // jsonTobean();
- }
- public static void beanTojack() throws ParseException, IOException {
- User u = new User();
- u.setId(1);
- u.setName("curry");
- u.setAge(30);
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- u.setBirthday(dateFormat.parse("1988-9-21"));
- u.setEmail("138@163.com");
- User u2 = new User();
- u2.setId(2);
- u2.setName("KD");
- u2.setAge(29);
- u2.setBirthday(dateFormat.parse("1989-9-21"));
- u2.setEmail("123@qq.com");
- List<User> users = new ArrayList<>();
- users.add(u);
- users.add(u2);
- // 对象转 json 格式
- String beanToJson = JacksonUtil.BeanToJson(users);
- System.out.println(beanToJson);
- }
- public static void jsonTobean() throws JsonParseException, JsonMappingException, IOException {
- String json = "{\"id\":3, \"name\":\" 小明 \", \"age\":18, \"birthday\":590774400000, \"email\":\"xiaomin@sina.com\"}";
- User jsonToBean = JacksonUtil.JsonToBean(json, User.class);
- System.out.println(jsonToBean);
- }
- }
来源: http://www.bubuko.com/infodetail-2570642.html