Java 对象与json互转之ObjectMapper

一、使用ObjectMapper

  引入ObjectMapper依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.3</version>
</dependency>

  使用时先创建ObjectMapper对象

ObjectMapper objectMapper = new ObjectMapper();

  根据代码实际需求情况可设置定义下面属性:

//序列化的时候序列对象的所有属性
objectMapper.setSerializationInclusion(Include.ALWAYS);

//反序列化的时候如果多了其他属性,不抛出异常
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

//如果是空对象的时候,不抛异常
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

//取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

  1、对象与json字符串互转

// 学生对象
Student student = new Student();

// 对象转json字符串
String jsonStr = mapper.writeValueAsString(student);

// json字符串转对象
Student student = mapper.readValue(jsonStr, Student.class);

  2、对象与byte数组互转

// 学生对象
Student student = new Student();

// 对象转byte数组
byte[] byteArr = mapper.writeValueAsBytes(student);

// byte数组转对象
Student student = mapper.readValue(byteArr, Student.class);

  3、对象List集合与json字符串

// 学生对象List集合
List<Student> studentList = new ArrayList<>();

// 对象List集合转json字符串
String jsonStr = mapper.writeValueAsString(studentList);

// json字符串转对象List集合
List<Student> studentList = mapper.readValue(jsonStr, List.class);

  4、Map与json字符串

Map<String, Object> testMap = new HashMap<>();

// Map转json字符串
String jsonStr = mapper.writeValueAsString(testMap);

// json字符串转Map
Map<String, Object> testMap = mapper.readValue(jsonStr, Map.class);

 

posted @ 2021-06-03 16:44  ヤBig、Bossづ  阅读(969)  评论(0编辑  收藏  举报