zoukankan      html  css  js  c++  java
  • Jackson工具

    Jackson

    Jackson包含一个core JAR,和两个依赖core JAR的JAR:

      jackson-core-2.2.3.jar(核心jar包,下载地址

      jackson-annotations-2.2.3.jar(该包提供Json注解支持,下载地址

      jackson-databind-2.2.3.jar(下载地址

    maven依赖:

    dependency>  
          <groupId>com.fasterxml.jackson.core</groupId>  
          <artifactId>jackson-databind</artifactId>  
          <version>${jackson-version}</version>  
    </dependency>  
    <dependency>  
          <groupId>com.fasterxml.jackson.core</groupId>  
          <artifactId>jackson-core</artifactId>  
          <version>${jackson-version}</version>  
    </dependency>  
    <dependency>  
          <groupId>com.fasterxml.jackson.core</groupId>  
          <artifactId>jackson-annotations</artifactId>  
          <version>${jackson-version}</version>  
    </dependency>  
    Jackson提供了两种不同的JSON解析器:
    1. ObjectMapper:把JSON解析到自定义的Java类中,或者解析到一个Jackson指定的树形结构中(Tree model)。
    2. Jackson JsonParser:一种“拉式”(pull)解析器,每次解析一组JSON数据。
    Jackson也包含了两种不同的JSON生成器:
    1. ObjectMapper:把自定义的Java类,或者一个Jackson指定的树形结构生成为JSON文件。
    2. Jackson JsonGenerator:每次只生成一组JSON数据。

    ObjectMapper

    ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现。 

    ObjectMapper有多个JSON序列化的方法,可以把JSON字符串保存File、OutputStream等不同的介质中。

    1.          * writeValue(File arg0, Object arg1)把arg1转成json序列,并保存到arg0文件中。 
    2.          * writeValue(OutputStream arg0, Object arg1)把arg1转成json序列,并保存到arg0输出流中。 
    3.          * writeValueAsBytes(Object arg0)把arg0转成json序列,并把结果输出成字节数组。 
    4.          * writeValueAsString(Object arg0)把arg0转成json序列,并把结果输出成字符串。 

    作用:

      1、把对象转son(String类型);

    private static final ObjectMapper MAPPER = new ObjectMapper();
    
        return this.MAPPER.writeValueAsString(result);

      2、把json转成对象;

    User user = MAPPER.readValue(json, User.class);
                    
    this.MAPPER.writeValueAsString(user)

      3、直接解析

    ObjectMapper mapper = new ObjectMapper();
    JsonNode jsonNode = mapper.readTree(json);
    String type = jsonNode.get("type").asText();
    Long itemId = jsonNode.get("itemId").asLong();

    JSON注解

    Jackson提供了一系列注解,方便对JSON序列化和反序列化进行控制,下面介绍一些常用的注解。

      @JsonIgnore 此注解用于属性上,作用是进行JSON操作时忽略该属性。

      @JsonFormat 此注解用于属性上,作用是把Date类型直接转化为想要的格式,如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")。

      @JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。

  • 相关阅读:
    Flask笔记:cookie
    Flask笔记:文件上传
    Python内置库:threading(多线程操作)
    Linux服务器架设篇,DNS服务器(三),正反解区域的配置
    Linux服务器架设篇,Windows中的虚拟机linux上不了外网怎么办?
    Linux服务器架设篇,DNS服务器(二),cache-only DNS服务器的搭建
    Linux服务器架设篇,DNS服务器(一),基础知识
    Linux网络架设篇,虚拟机l系统中网卡设备名与配置文件不符如何处理?
    Linux网络安全篇,FTP服务器的架设
    Linux基础管理篇,软件管理程序,yum与rpm
  • 原文地址:https://www.cnblogs.com/soul-wonder/p/8919665.html
Copyright © 2011-2022 走看看