VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java Collections

Java XML

Java XML Java DOM Parser – đọc, tạo, sửa tài liệu XML Java SAX Parser – đọc tài liệu XML Java StAX Parser – đọc tài liệu XML

Java JSON

Ví dụ JSON với Java – json.simple JSON.simple – phân tích cú pháp JSON trong Java Ví dụ JSON với Java – Jackson Jackson – phân tích cú pháp JSON trong Java
Java AWT Java Swing Java I/O Ví Dụ Java I/O Java JDBC Các Tính Năng Mới Trong Java Lập Trình Mạng Với Java Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Jackson - phân tích cú pháp JSON trong Java


Collection trong java
Java SAX Parser – đọc tài liệu XML

Một ví dụ tiếp theo của bài Ví dụ JSON với Java – Jackson.

Ví dụ: phân tích cú pháp JSON trong Java, với chuỗi JSON được đọc từ một file:

File employee.json:

{
    "firstName":"Vinh",
    "lastName":"Phan",
    "address":{
        "streetAddress":"11 Tu Lap",
        "district":"Me Linh",
        "city":"Ha Noi",
        "state":"",
        "postalCode":"100000"
    },
    "age":25,
    "phoneNumbers":[
        {
            "type":"home",
            "number":"096677028"
        },
        {
            "type":"fax",
            "number":"0435508028"
        }
    ],
    "Sex":"Male",
    "salary":1200.0
}

Tạo lớp Employee.java

Lưu ý: các bạn chú ý, mình cố ý để biến Sex trong file employee.json. Nên trong lớp Employee.java phải khai báo @JsonGetter("Sex") trước phương thức getSex() và @JsonSetter("Sex") trước phương thức setSex(). Khai báo như vậy để nói với trình phân tích cú pháp Jackson rằng thuộc tính sex được định nghĩa trong tài liệu json là Sex. Nếu không khai báo như vậy thì chương trình sẽ bị lỗi.

package vn.viettuts.json;

import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonGetter;
import com.fasterxml.jackson.annotation.JsonSetter;

public class Employee implements Serializable {
    private String firstName;
    private String lastName;
    private Address address;
    private int age;
    private List<Phone> phoneNumbers;
    private String sex;
    private double salary;

    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public Address getAddress() {
        return address;
    }
    public void setAddress(Address address) {
        this.address = address;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public List<Phone> getPhoneNumbers() {
        return phoneNumbers;
    }
    public void setPhoneNumbers(List<Phone> phoneNumbers) {
        this.phoneNumbers = phoneNumbers;
    }
    @JsonGetter("Sex")
    public String getSex() {
        return sex;
    }
    @JsonSetter("Sex")
    public void setSex(String sex) {
        this.sex = sex;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
}

Tạo lớp Address.java

package vn.viettuts.json;

import java.io.Serializable;

public class Address  implements Serializable {
    private String state;
    private String city;
    private String district;
    private String streetAddress;
    private String postalCode;

    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getDistrict() {
        return district;
    }
    public void setDistrict(String district) {
        this.district = district;
    }
    public String getStreetAddress() {
        return streetAddress;
    }
    public void setStreetAddress(String streetAddress) {
        this.streetAddress = streetAddress;
    }
    public String getPostalCode() {
        return postalCode;
    }
    public void setPostalCode(String postalCode) {
        this.postalCode = postalCode;
    }
    @Override
    public String toString() {
        return state + " - " + city + " - " + district + " - " 
                + streetAddress + " - " + postalCode;
    }
}

Tạo lớp Phone.java

package vn.viettuts.json;

import java.io.Serializable;

public class Phone  implements Serializable {
    private String type;
    private String number;

    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
}

Tạo lớp JSONJacksonExample.java

package vn.viettuts.json;

import java.io.FileReader;
import java.io.IOException;
import java.util.List;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JSONJacksonExample {
    public static void main(String[] args) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            Employee emp = null;
            emp = mapper.readValue(new FileReader("D:\\json\\employee.json"), 
                    Employee.class);
            System.out.println("firstName: " + emp.getFirstName());
            System.out.println("lastName: " + emp.getLastName());
            System.out.println("address: " + emp.getAddress().toString());
            System.out.println("age: " + emp.getAge());
            System.out.println("phone: ");
            List<Phone> listPhones = emp.getPhoneNumbers();
            for (Phone phone : listPhones) {
                System.out.println(phone.getType() + ": " + phone.getNumber());
            }
            System.out.println("sex: " + emp.getSex());
            System.out.println("salary: " + emp.getSalary());
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

Kết quả:

firstName: Vinh
lastName: Phan
address:  - Ha Noi - Me Linh - 11 Tu Lap - 100000
age: 25
phone: 
home: 096677028
fax: 0435508028
sex: Male
salary: 1200.0


Collection trong java
Java SAX Parser – đọc tài liệu XML

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml