Jackson簡單應用

Jackson官網 http://wiki.fasterxml.com/
Jackson下載 https://github.com/FasterXML/jackson-annotations/wikijava

本文代碼下載 https://pan.baidu.com/s/1dEHqPlZgit

本文介紹Jackson簡單應用,但願能對你們有用,操做流程以下:github

第一步:建立Maven項目,配置pom.xml。json

<dependencies>
      <!-- Jackson包 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.1</version>
    </dependency>
  </dependencies>
View Code

第二步:建立測試文件,功能測試。app

Users對象ide

package com.learn.jackson;

public class Users {
    private String uuid;
    private String name;
    private Integer age;
    private Integer sex;
    private String remark;
    
    public Users() {
    }
    
    public Users(String uuid,String name,Integer age, Integer sex, String remark){
        this.uuid = uuid;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.remark = remark;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    
    public String getMassages(){
        return uuid+"--"+name+"--"+sex+"--"+age+"--"+remark;
    }
}
View Code

測試文件測試

package com.learn.jackson;

import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import junit.framework.TestCase;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

public class AppTest extends TestCase {
    public static void main(String[] args) throws IOException {
        //測試數據
        Users user = new Users("aaa", "aaa", 23, 1, "這是aaa");
        List<Users> list = new ArrayList<Users>();
        list.add(new Users("bbb", "bbb", 45, 1, "這是bbb"));
        list.add(new Users("ccc", "ccc", 23, 1, "這是ccc"));
        //Jackson對象
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        
        System.out.println("********JSON -> 對象************");
        String jsonUser = mapper.writeValueAsString(user);
        String jsonList = mapper.writeValueAsString(list);
        System.out.println(jsonUser);
        System.out.println(jsonList);
        
        System.out.println("********對象 -> JSON************");
        Users us = mapper.readValue(jsonUser, Users.class);
        System.out.println(us.getMassages());
        
        List<LinkedHashMap> lis = mapper.readValue(jsonList, List.class);
        for (LinkedHashMap map : lis) {
            String json = mapper.writeValueAsString(map);
            Users uu1 = mapper.readValue(json, Users.class);
            System.out.println(uu1.getMassages());
        }
    }
}
View Code

異常處理:ui

JSON轉實體拋出異常com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException,是因爲實體中缺乏JSON的某個字段引發。可經過以下配置解決:this

1.經過mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)配置實現。spa

2.經過@JsonIgnoreProperties(ignoreUnknown = true)註解實現

相關文章
相關標籤/搜索