VietTuts

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

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • Python
  • PHP
  • Eclipse
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Phần mềm tiện ích
    • Cấu trúc dữ liệu và giải thuật
    • Học lập trình C#
    • 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

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

Toá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 JavaBài tập quản lý sinh viên trong JavaHashSet trong javaHashMap trong javaLớp WindowAdapter trong Java SwingLớp MouseMotionAdapter trong Java SwingLớp MouseAdapter trong Java SwingLớp KeyAdapter trong Java Swing

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
Học servlet
Học jsp
Học Hibernate
Học Struts2
Học Spring
Học SQL

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

About VietTuts.Vn

Hệ thống bài học trên VietTuts.Vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống VietTuts.Vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en …

Scroll back to top

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