Jackson, serialize Java objects to JSON

JSON (JavaScript Object Notation) hiện giờ đã rất phổ biến, quá trình phát triển hệ thống chúng là sử dụng nó như 1 dữ liệu để giao tiếp giữa các ứng dụng. Hôm nay tôi sẽ giới thiệu về Jackson một thư viện Java được sử dụng để thao tác với JSON.

-** Tại sao lại sử dụng Jackson ?** Đây là lý do cho câu hỏi trên:

  • Nó rất dễ sử dụng, cách thức sử dụng cài đặt vô cùng đơn giản.
  • Không cần tạo mapping giữa Java object và Json.
  • Tốc độ xử lý nhanh
  • Mọi thứ cần thiết được đóng gói trong thư viên, không cần thêm bất cứ Dependency nào khác.
  • Jackson hoàn toàn miễn phí.

- Giờ hãy bắt đầu với Jackson.

  • Đầu tiên chúng ta tạo 1 Maven Project bằng bất cứ IDE nào bạn muốn, sau đó thêm đoạn sau vào file pom.xml

      <!-- Thu vien Lombok -->
      <dependency>
      	<groupId>org.projectlombok</groupId>
      	<artifactId>lombok</artifactId>
      	<version>1.16.8</version>
      	<scope>provided</scope>
      </dependency>
      <!-- thu vien Jackson -->
      <dependency>
      	<groupId>org.codehaus.jackson</groupId>
      	<artifactId>jackson-mapper-asl</artifactId>
      	<version>1.9.13</version>
      </dependency>
    
  • Update maven để download được thư viện Json.

  • Tạo 1 Java class như sau:

` package com.uzabase.test;

import java.io.IOException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import lombok.Data;

public class JacksonTester {

    public static void main(String args[]) {
        try {
            ObjectMapper mapper = new ObjectMapper();

            //Convert from Json to Java object
            String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
            Student student = mapper.readValue(jsonString, Student.class);
            System.out.println("Object --> " + student);

            //Convert from Java object to Json
            Student st = new Student();
            st.setName("Jackson");
            st.setAge(100);
            st.getContact().setTelNumber("123456789");

            mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);
            jsonString = mapper.writeValueAsString(st);
            System.out.println("JSON --> " + jsonString);

        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

@Data
class Student {
    private Contact contact = new Contact();
    private String name;
    private int age;

    @Data
    class Contact {
        private String telNumber;
    }

    public String toString() {
        return "Student [ name: " + name + ", age: " + age + " ]";
    }
}`

Hãy thử build và run class trên để xem kết quả. Hy vọng phần giới thiệu trên đây sẽ hữu ích với mọi người khi có nhu cầu thao tác xử lý với Json trong Java. Để tìm hiểu kĩ hơn về thư viện này bạn có thể thao khảo theo link sau: