zoukankan      html  css  js  c++  java
  • Jackson---随笔

    最近在详细、深入的学习java的周边辅助框架,并且写下随笔,方便以后查看;并且记录下自己的思维历程,欢迎大家的拍砖。

    这次主要介绍的Jackson,就是Spring Boot默认的json转换工具。既然是工具,大家掌握一种便可,内部深入的设计思路可不做

    深入,但是应用我们一定要掌握。本着这样的思路,我们将从以下几个方面做下介绍。

    1、安装

         我们如果要使用Jackson,需要再maven中引入相关的类包。Jackson主要包含了三个类包:

        a、Jackson Core

        b、Jackson Annotations

        c、Jackson Databind

        Jackson不只是json的转换工具,还可以做其他形式的文件做转换及分析。比如:YAML 、 CBOR 等。

    2、设计思路

      Jackson工具主要做两件事情:

           序列化:Java Object 转换为 Json  

      反序列化:Json 转换为 Java Object

      序列化,是调用的Java Object 的get方法;反序列化,是首先分析json,然后按照field name 调用对应的set方法。

    3、工具

      Jackson 为我们提供了两种工具:

           更上层的工具:ObjectMapper 。 其包含了序列化、反序列化方法 

      底层工具:JsonPaser(反序列化) 、 JsonGenerator (序列化) 。 若是Jackson提供的默认序列化、反序列化工具不足以支持我们的需求,便可以自定义序列化工具。

    4、对象

      使用Jackson框架,我们将会遇到三种对象。Json 、 JsonNode 、 Java Object ,三者之间可以相互转化,具体的转换方法不在一一的表述。

    5、注解

      主要分为三种:序列化注解、反序列化注解。序列化注解:是Java 对象序列化时用到的;反序列化注解:是Json反序列化到Java对象用到的注解。剩下的一种及时序列化、反序列化均可以使用的。

      序列化、反序列化:

      JsonIgnore : 忽视 指定的属性

      JsonIgnoreProperties : 忽视指定的属性

      JsonIgnoreType : 忽视指定的类型

      JsonAutoDetect :  自动发现非public的属性

      反序列化:

      JsonSetter : 反序列化时,Json中的属性名称

      JsonAnySetter : 应用到Map对象,key做json中的属性,value做属性对应的值

      JsonCreator: 应用在Java 类型为不可变的类,注解应用在构造方法上,并且需要JsonProperty指定json属性名称指定属性名称

      JacksonInject : Java 对象中的属性值需要被注入

      JsonDeserialize : 自定义反序列化实现的工具

      序列化:

      JsonInclude:只是包含指定值的属性

      JsonGetter : 序列化到Json中的属性名称

      JsonAnyGetter : 应用在Map对象上,Map中的Key映射到Json中的属性,Value做Json中的值

      JsonPropertyOrder:属性字段的顺序

      JsonRawValue: 映射到json中为原值

      JsonValue: 简单的序列化方法

      JsonSerialize:序列化方法

  • 相关阅读:
    魔兽登录系统
    航班信息查询预订
    第六章
    嵌套.
    嵌套
    Mysql
    第二章
    Java
    HTML-表格-列表-结构标记-表单
    HTML语言
  • 原文地址:https://www.cnblogs.com/sunxianbiao/p/12728703.html
Copyright © 2011-2022 走看看