zoukankan      html  css  js  c++  java
  • jackson简单使用案例

    新建Maven项目导入依赖包:jakson

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     3     <modelVersion>4.0.0</modelVersion>
     4     <groupId>henu.yyq</groupId>
     5     <artifactId>mytest</artifactId>
     6     <version>0.0.1-SNAPSHOT</version>
     7 
     8     <dependencies>
     9         <!-- jakson依赖包 因为jackson-databind依赖core和annotation俩jar包,所以maven会自动导入--> 
    10         <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    11         <dependency>
    12             <groupId>com.fasterxml.jackson.core</groupId>
    13             <artifactId>jackson-databind</artifactId>
    14             <version>2.9.4</version>
    15         </dependency>
    16     </dependencies>
    17     
    18         <!-- Jre版本号 -->
    19     <build>
    20         <plugins>
    21             <plugin>
    22                 <groupId>org.apache.maven.plugins</groupId>
    23                 <artifactId>maven-compiler-plugin</artifactId>
    24                 <version>3.7.0</version>
    25                 <configuration>
    26                     <source>1.8</source>
    27                     <target>1.8</target>
    28                 </configuration>
    29             </plugin>
    30         </plugins>
    31     </build>
    32 </project>    

    实体类准备

     1 package henu.yyq.jakson;
     2 
     3 import java.util.Date;
     4 
     5 import com.fasterxml.jackson.annotation.JsonFormat;
     6 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
     7 import com.fasterxml.jackson.annotation.JsonProperty;
     8 
     9 //空值不序列化:ignoreUnknown=true
    10 //忽略字段:value={"id", ...}
    11 @JsonIgnoreProperties(ignoreUnknown=true, value={"id"})
    12 public class Exam {
    13     private Integer id;
    14 
    15     private String subject;
    16 
    17     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    18     private Date starttime;
    19 
    20     //类型转换
    21     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    22     private Date endtime;
    23 
    24     private String state;
    25     
    26     //声明别名
    27     @JsonProperty("teacherId")
    28     private String t_id;
    29 
    30     public String getT_id() {
    31         return t_id;
    32     }
    33 
    34     public void setT_id(String t_id) {
    35         this.t_id = t_id;
    36     }
    37 
    38     public Integer getId() {
    39         return id;
    40     }
    41 
    42     public void setId(Integer id) {
    43         this.id = id;
    44     }
    45 
    46     public String getSubject() {
    47         return subject;
    48     }
    49 
    50     public void setSubject(String subject) {
    51         this.subject = subject == null ? null : subject.trim();
    52     }
    53 
    54     public Date getStarttime() {
    55         return starttime;
    56     }
    57 
    58     public void setStarttime(Date starttime) {
    59         this.starttime = starttime;
    60     }
    61 
    62     public Date getEndtime() {
    63         return endtime;
    64     }
    65 
    66     public void setEndtime(Date endtime) {
    67         this.endtime = endtime;
    68     }
    69 
    70     public String getState() {
    71         return state;
    72     }
    73 
    74     public void setState(String state) {
    75         this.state = state == null ? null : state.trim();
    76     }
    77 
    78     @Override
    79     public String toString() {
    80         return "Exam [subject=" + subject + ", starttime=" + starttime + ", state=" + state + "]";
    81     }
    82 
    83 }
     1 package henu.yyq.jakson;
     2 
     3 import java.util.List;
     4 import java.util.Map;
     5 
     6 public class TT {
     7 
     8     private List<Map> lm;
     9 
    10     public List<Map> getLm() {
    11         return lm;
    12     }
    13 
    14     public void setLm(List<Map> lm) {
    15         this.lm = lm;
    16     }
    17 
    18     @Override
    19     public String toString() {
    20         return "TT [lm=" + lm + "]";
    21     }
    22     
    23 }

    工具类以及测试

      1 package henu.yyq.jakson;
      2 
      3 import java.io.IOException;
      4 import java.util.ArrayList;
      5 import java.util.Date;
      6 import java.util.HashMap;
      7 import java.util.List;
      8 import java.util.Map;
      9 
     10 import org.junit.Test;
     11 
     12 import com.fasterxml.jackson.databind.JavaType;
     13 import com.fasterxml.jackson.databind.ObjectMapper;
     14 
     15 /**
     16  * @ClassName: JsonUtil <br/> 
     17  * @Describtion: JSON与Java Bean之间的转换. <br/> 
     18  * @date: 2018年4月17日 下午10:29:39 <br/> 
     19  * @author Beats <br/> 
     20  * @version v1.0
     21  */
     22 public class JsonUtil {
     23 
     24      // 定义ObjectMapper对象,用于数据转换
     25     private static final ObjectMapper mapper = new ObjectMapper();
     26     
     27     /**
     28      * getJSON:(对象转换成JSON). <br/> 
     29      * @param bean
     30      * @return String
     31      */
     32     public static String getJson(Object object) {
     33         try {
     34             return mapper.writeValueAsString(object);
     35         } catch (IOException e) {
     36             e.printStackTrace();
     37         }
     38         return null;
     39     }
     40 
     41     /**
     42      * getBean:(JSON字符串转对象). <br/> 
     43      * @param json
     44      * @param t
     45      * @return T
     46      */
     47     public static <T> T getBean(String json, Class<T> t) {
     48         try {
     49             return mapper.readValue(json, t);
     50         } catch (IOException e) {
     51             e.printStackTrace();
     52         }
     53         return null;
     54     }
     55     
     56     /**
     57      * jsonToObject:(JSON字符串转对象). <br/> 
     58      * @param json
     59      * @param t
     60      * @return T
     61      */
     62     public static <T> List<T> getBeanList(String json, Class<T> beanType) {
     63         try {
     64             //方案一:
     65 //            JavaType javaType = mapper.getTypeFactory().constructCollectionType(List.class, beanType);
     66             //方案二:
     67             JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, beanType);
     68             return mapper.readValue(json, javaType);
     69             //方案三
     70 //            TypeReference<T> typeReference = new TypeReference<T>() {};
     71 //            return mapper.readValue(json, typeReference);
     72         } catch (IOException e) {
     73             e.printStackTrace();
     74         }
     75         return null;
     76     }
     77     
     78     @Test
     79     public void testGetJson() {
     80         //简单类型
     81         Exam e = new Exam();
     82         e.setId(100);
     83         e.setSubject("English");
     84         e.setState("Created");
     85         e.setStarttime(new Date());
     86         e.setEndtime(new Date());
     87         e.setT_id("1234567890");
     88         
     89         String json = JsonUtil.getJson(e);
     90         System.out.println(json);
     91         
     92         //复杂类型
     93         TT t = new TT();
     94         
     95         List<Map> l = new ArrayList<Map>();
     96         Map m = new HashMap();
     97         m.put("A", "what's your name");
     98         l.add(m);
     99         Map m2 = new HashMap();
    100         m2.put("B", "what's your mather");
    101         l.add(m2);
    102         
    103         t.setLm(l);
    104         
    105         String res = JsonUtil.getJson(t);
    106         System.out.println(res);
    107     }
    108     
    109     @Test
    110     public void testGetBean() {
    111         String json = "{"subject":"English","starttime":"2018-04-17 15:05:01","endtime":"2018-04-17 15:05:01","state":"Created","teacherId":"1234567890"}";
    112         Exam e = JsonUtil.getBean(json, Exam.class);
    113         System.out.println(e.toString());
    114         
    115         String json2 = "{"lm":[{"A":"what's your name"},{"B":"what's your mather"}]}";
    116         TT t = JsonUtil.getBean(json2, TT.class);
    117         System.out.println(t);
    118     }
    119     
    120     @Test
    121     public void testGetBeanList() {
    122         String json = "[{"subject":"English","starttime":"2018-04-17 15:05:01","endtime":"2018-04-17 15:05:01","state":"Created","teacherId":"1234567890"},{"subject":"English","starttime":"2018-04-17 15:05:01","endtime":"2018-04-17 15:05:01","state":"Created","teacherId":"1234567890"}]";
    123         List<Exam> es = JsonUtil.getBeanList(json, Exam.class);
    124         System.out.println(es);
    125         
    126     }
    127 }

    结果自己试试就知道了

  • 相关阅读:
    jQuery让渡$操作符
    JSON
    Jquery实现Ajax(二)
    Jquery实现Ajax(一)
    Javascript实现Ajax
    文章目录
    读过的书
    JVM笔记(5)-垃圾回收&内存分配策略
    JVM笔记(4)-对象及其引用
    JVM笔记(3)-内存结构&方法执行(栈帧)
  • 原文地址:https://www.cnblogs.com/webyyq/p/6713060.html
Copyright © 2011-2022 走看看