Java知识点 --- ObjectMapper的使用

   ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写。

第一步:依赖包的导入

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

第二步:代码的编写

public class ObjectConvertJson{
     private static ObjectMapper mapper;
     
     static {
        mapper = new ObjectMapper();
        dynamicMapper= new ObjectMapper();
         //默认时间格式(非必须要设定的属性)
        mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        //Include.Include.ALWAYS 默认
        //Include.NON_DEFAULT 属性为默认值不序列化
        //Include.NON_EMPTY 属性为 空(“”)  或者为 NULL 都不序列化
        //Include.NON_NULL 属性为NULL 不序列化
        mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
      }

     /**
     * 对象序列化为字符串
     */
    public static String serializeAsString(Object object) {
        if (object == null) {
            return "";
        }
        try {
            return mapper.writeValueAsString(object);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     *对象序列化为字符集合
     */
    public static byte[] serializeAsByte(Object object) {
        if (object == null) {
            return new byte[0];
        }
        try {
            return mapper.writeValueAsBytes(object);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

     /**
     * json串转换为指定类型的Object
     */
    public static <T> T parseJsonToObject(String objectJson, Class<T> targetClass) {
        try {
            return mapper.readValue(objectJson, targetClass);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * json串转换为Map
     */
    public static <K, V> Map<K, V> parseJsonToMap(String objectJson, Class<K> keyClass, Class<V> valueClass) {
        if (StringUtils.isEmpty(objectJson)) {
            return Collections.emptyMap();
        }
        try {
            return mapper.readValue(objectJson,
                    mapper.getTypeFactory().constructMapType(HashMap.class, keyClass, valueClass));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 将对象转换为类
     */
    public static <T> T convertObjectToClass(Object object, Class<T> elementClasses){
        try {
            // 忽略不存在的字段
            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
            return mapper.convertValue(object, elementClasses);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 将对象转换为集合类型
     */
    public static <T> ArrayList<T> convertObjectToArrayList(Object object, Class<T> elementClasses){
        try {
            JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, elementClasses);
            return mapper.convertValue(object, javaType);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

   
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ObjectMapperJava中Jackson库中的一个类,它主要用于实现Java对象和JSON之间的转换功能。通过ObjectMapper,我们可以将Java对象转换为JSON格式的字符串,也可以将JSON格式的字符串转换为Java对象。 以下是一个使用ObjectMapper进行对象转换的示例: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class ObjectMapperExample { public static void main(String[] args) { // 创建ObjectMapper对象 ObjectMapper objectMapper = new ObjectMapper(); // 将Java对象转换为JSON字符串 try { // 创建一个Java对象 Person person = new Person("John", 25); // 将Java对象转换为JSON字符串 String json = objectMapper.writeValueAsString(person); // 输出JSON字符串 System.out.println(json); } catch (Exception e) { e.printStackTrace(); } // 将JSON字符串转换为Java对象 try { // JSON字符串 String json = "{\"name\":\"John\",\"age\":25}"; // 将JSON字符串转换为Java对象 Person person = objectMapper.readValue(json, Person.class); // 输出Java对象 System.out.println(person.getName()); System.out.println(person.getAge()); } catch (Exception e) { e.printStackTrace(); } } } // 定义一个Person类 class Person { private String name; private int age; public Person() {} public Person(String name, int age) { this.name = name; this.age = age; } // 省略getter和setter方法 // ... } ``` 这个示例演示了如何使用ObjectMapperJava对象转换为JSON字符串,并将JSON字符串转换为Java对象。在示例中,我们创建了一个Person类,并使用ObjectMapper将Person对象转换为JSON字符串,然后再将JSON字符串转换为Person对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值