jackson

jackson

//序列化时转换为指定的属性
@JsonProperty(value = "UserID")
private Integer userID;

//序列化成为json的时候忽略此字段
@JsonIgnore
private String passWord;

//序列化成为json的时候指定日期格式,指定时区
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date createTime;

//值为空时序列化是忽略此字段
@JsonInclude(JsonInclude.Include.NON_NULL)
private String description;

//输出时不自动转换为首字母小写
@JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.ANY, getterVisibility=JsonAutoDetect.Visibility.NONE)
private static ObjectMapper objectMapper;

 public static ObjectMapper CreateInstance() {
        if (objectMapper == null) {
            objectMapper = new ObjectMapper();
        }
        //序列化时过滤为null的属性
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        //序列化时过滤为null和“”的属性
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
        //反序列化时忽略不存在的属性
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        //反序列化时忽略属性的大小写
        objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
        return objectMapper;
    }

第一次写博客,先这么记录下吧,以后学习过程中在慢慢补充

### Jackson JSON 处理库概述 Jackson 是一种广泛使用的 Java 库,专门设计用于处理 JSON 数据。其核心功能包括将 Java 对象序列化为 JSON 字符串以及将 JSON 字符串反序列化为 Java 对象[^1]。此外,在现代 Web 开发中,JSON 成为了数据交换的主要标准,因此掌握像 Jackson 这样的工具显得尤为重要[^2]。 以下是关于 Jackson 的一些基本概念及其使用方法: #### Maven 配置 要在项目中引入 Jackson,可以通过 Maven 添加以下依赖项: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> ``` 此配置允许开发者利用 `ObjectMapper` 类来执行 JSON 和 Java 对象之间的转换操作[^3]。 #### 基本用法:序列化与反序列化 ##### 1. **序列化** 序列化是指将 Java 对象转化为 JSON 字符串的过程。可以借助 `ObjectMapper` 实现这一目标: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); // 创建一个简单的 POJO User user = new User("John", 30); // 将对象转为 JSON 字符串 String jsonString = mapper.writeValueAsString(user); System.out.println(jsonString); // 输出 {"name":"John","age":30} } } class User { private String name; private int age; public User() {} public User(String name, int age) { this.name = name; this.age = age; } // Getters and Setters... } ``` ##### 2. **反序列化** 反序列化则是指从 JSON 字符串还原成对应的 Java 对象的操作: ```java // 反序列化过程 User deserializedUser = mapper.readValue("{\"name\":\"Jane\",\"age\":28}", User.class); System.out.println(deserializedUser.getName()); // 输出 Jane ``` #### 错误处理机制 当遇到无法解析的路径或者不合法的 JSON 结构时,Jackson 提供了一种异常类——`JsonProcessingException` 来捕获这些问题。如果需要自定义错误逻辑,则可扩展此类实现更复杂的业务需求[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值