Java——jackson的注解@JsonProperty、@JsonIgnore、@JsonIgnoreProperties、@JsonFormat、@JSONField

简介: Java——jackson的注解@JsonProperty、@JsonIgnore、@JsonIgnoreProperties、@JsonFormat、@JSONField

前言

本文所写注解位于com.fasterxml.jackson.annotation包中

依赖:

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

java代码中常常用到jackson的注解,主要用到的有:@JsonProperty、@JsonIgnore、@JsonIgnoreProperties、@JsonFormat

举例:

实体类Student

@JsonIgnoreProperties(value = { "address", "score" })
public class Student implements Serializable {
  private static final long serialVersionUID = 1L;
  @JsonProperty(value = "name", required = true)
  private String trueName;
  @JsonIgnore
  private int age;
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")
  private Date birthday;
  private String address;
  private String score;
  public String getTrueName() {
    return trueName;
  }
  public void setTrueName(String trueName) {
    this.trueName = trueName;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public Date getBirthday() {
    return birthday;
  }
  public void setBirthday(Date birthday) {
    this.birthday = birthday;
  }
  public String getAddress() {
    return address;
  }
  public void setAddress(String address) {
    this.address = address;
  }
  public String getScore() {
    return score;
  }
  public void setScore(String score) {
    this.score = score;
  }
  @Override
  public String toString() {
    return "name: " + this.trueName + ", address: " + this.address + ", age:" 
         + this.age + ", birthday:" + this.birthday + ", score:" + this.score;
  }
}

测试注解:

public class TestJsonProperty {
  public static void main(String[] args) throws IOException {
    Student student = new Student();
    student.setTrueName("张三");
    student.setAge(20);
    student.setBirthday(new Date());
    student.setAddress("上海市");
    student.setScore("90");
    // 使用writeValuesAsString把对象转化成json字符串。
    String stuJson = new ObjectMapper().writeValueAsString(student);
    System.out.println(stuJson);
    //使用readValue把字符串转化为对象
    Student stu = new ObjectMapper().readValue(stuJson, Student.class);
    System.out.println(stu.toString());
  }
}

结果:

{"birthday":"2020-04-16 03:57:06","name":"张三"}
name: 张三, address: null, age:, birthday:Thu Apr 16 11:57:06 CST 20200, score:null


一、@JsonProperty

写法有两种:

第1种:全写,使用“=”;
@JsonProperty(value = "", required = true)
第2种:简写,直接把value写到括号里,required默认为false。
@JsonProperty("")

value属性:代表该属性序列化和反序列化的时候的key值。

required属性:默认false,例如当required=false的时候,当反序列化的时候没有找到key值,就会报错。


二、@JsonIgnore

一般标记在属性或者方法上,返回的json数据即不包含该属性

三、@JsonIgnoreProperties

类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

四、@JsonFormat

用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式

写法:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")

五、@JSONField

主要用于解析前端传过来的时间格式的数据

用法:@JSONField(format = "yyyy-MM-dd")

相关文章
|
25天前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
86 43
Java学习十六—掌握注解:让编程更简单
|
20天前
|
Java 开发者 Spring
[Java]自定义注解
本文介绍了Java中的四个元注解(@Target、@Retention、@Documented、@Inherited)及其使用方法,并详细讲解了自定义注解的定义和使用细节。文章还提到了Spring框架中的@AliasFor注解,通过示例帮助读者更好地理解和应用这些注解。文中强调了注解的生命周期、继承性和文档化特性,适合初学者和进阶开发者参考。
43 14
|
20天前
|
前端开发 Java
[Java]讲解@CallerSensitive注解
本文介绍了 `@CallerSensitive` 注解及其作用,通过 `Reflection.getCallerClass()` 方法返回调用方的 Class 对象。文章还详细解释了如何通过配置 VM Options 使自定义类被启动类加载器加载,以识别该注解。涉及的 VM Options 包括 `-Xbootclasspath`、`-Xbootclasspath/a` 和 `-Xbootclasspath/p`。最后,推荐了几篇关于 ClassLoader 的详细文章,供读者进一步学习。
29 12
|
29天前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
14天前
|
Java 编译器
Java进阶之标准注解
Java进阶之标准注解
27 0
|
1月前
|
JSON Java 数据库
java 常用注解大全、注解笔记
关于Java常用注解的大全和笔记,涵盖了实体类、JSON处理、HTTP请求映射等多个方面的注解使用。
34 0
java 常用注解大全、注解笔记
|
2月前
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
1月前
|
IDE Java 编译器
java的反射与注解
java的反射与注解
16 0
|
2月前
|
Java 编译器 程序员
Java注解,元注解,自定义注解的使用
本文讲解了Java中注解的概念和作用,包括基本注解的用法(@Override, @Deprecated, @SuppressWarnings, @SafeVarargs, @FunctionalInterface),Java提供的元注解(@Retention, @Target, @Documented, @Inherited),以及如何自定义注解并通过反射获取注解信息。
Java注解,元注解,自定义注解的使用
|
1月前
|
XML Java 数据格式
Java-spring注解的作用
Java-spring注解的作用
22 0