[Khóa học lập trình Android] Bài 06 Phân tích cú pháp JSON

JSON là gì? JSON viết tắt của JavaScript Object Notation là một kiểu dữ liệu mở trong JavaScript, nó là một kiểu dữ liệu trung gian mà hầu hết các ngôn ngữ lập trình hiện nay như Java, Android, PHP… đều có thể hiểu được. Nội dung phần này sẽ là hướng dẫn phân tích cú pháp JSON.

JSON lưu trữ các dữ liệu theo dạng cặp “khóa – giá trị”. Xử lý JSON trong Android khá dễ dàng khí bản thân Android đã hỗ trợ sẵn thư viện để làm việc với JSON, bạn không cần phải khai báo bất cứ một thư viện nào khác.

Tìm hiểu về JSON:

Trong Android thì các lập trình viên hay sử dụng thư viện Gson hoặc Jackson nhằm giúp cho chuyển đổi nhanh hơn, vậy nên trong nội dung bài viết này mình sẽ đề cập phân tích và hiển thị dữ liệu từ JSON trong Android với thư viện Gson.

Một số API được chia sẻ miễn phí tại Team Việt Dev:

API URL Method Param
Giá vàng https://teamvietdev.com/tracuuthitruong/list_gold.php POST token
Kim cương https://teamvietdev.com/tracuuthitruong/list_diamond.php POST token
Ngoại tệ https://teamvietdev.com/tracuuthitruong/list_currency.php POST token
Xăng dầu https://teamvietdev.com/tracuuthitruong/list_petroleum.php POST token

Tham số (param) truyền vào với token có giá trị “teamvietdev.com” sẽ mã hóa và nhận kết quả trả về.

Nếu muốn xem định dạng JSON dễ hơn bạn vào trang https://jsoneditoronline.org sau đó dán đoạn mã JSON vào để dễ dàng xem cấu trúc chuỗi JSON bao gồm các thuộc tính, đối tượng, mảng… như thế nào.

Phân tích cú pháp JSON từ API:

Ví dụ chúng ta sẽ lấy dữ liệu ngoại tệ từ API trên, như vậy mình sẽ gọi URL tương ứng cung với sử dụng phương thức POST và truyền tham số token với mã teamvietdev.com thì sẽ nhận được dữ liệu trả về.

Bạn có thể tải ứng dụng Advanced REST client về để kiểm tra JSON

Khi mình gọi đến Web Service nhận được kết quả JSON như sau:

Chuỗi JSON trả về như sau:

[
  {
    "id": "4033",
    "kind": "Vietcombank",
    "serial": "AUD",
    "name": "AUST.DOLLAR",
    "buy": "16940.54",
    "transfer": "17042.8",
    "sell": "17240.02",
    "datetime": "7/28/2018 10:53:42 AM"
  },
  {
    "id": "4034",
    "kind": "Vietcombank",
    "serial": "CAD",
    "name": "CANADIAN DOLLAR",
    "buy": "17520.82",
    "transfer": "17679.94",
    "sell": "17884.54",
    "datetime": "7/28/2018 10:53:42 AM"
  },
  {
    "id": "4035",
    "kind": "Vietcombank",
    "serial": "CHF",
    "name": "SWISS FRANCE",
    "buy": "23012.32",
    "transfer": "23174.54",
    "sell": "23489.66",
    "datetime": "7/28/2018 10:53:42 AM"
  }
]

Nhìn cấu trúc JSON trên bạn thấy rằng dữ liệu trả về là một mảng array chứa danh sách các object gồm các thuộc tính như id, name, sell, buy

Bây giờ mình sẽ thiết kế các lớp tương ứng với cấu trúc JSON mà Web Service trả về, mình sẽ tạo lớp Currency.java nằm trong gói (package) model như sau:

package com.teamvietdev.tctt.model;
 
import com.google.gson.annotations.SerializedName;
 
import java.util.List;
 
public class Currency {
 
    @SerializedName("id")
    private int id;
    @SerializedName("kind")
    private String kind;
    @SerializedName("serial")
    private String serial;
    @SerializedName("name")
    private String name;
    @SerializedName("buy") 
    private String buy; 
    @SerializedName("transfer") 
    private String transfer; 
    @SerializedName("sell") 
    private String sell;
    @SerializedName("datetime") 
    private String datetime;
 
    // getter & setter
 
}

Một số API như giá vàng, giá xăng dầu… mà Team Việt Dev cung cấp bạn cũng làm tương tự như trên.

Xem nội dung chi tiết hướng dẫn trên Youtube:

Lời kết: Như vậy khóa học lập trình Android miễn phí được chia sẻ bởi Team Việt Dev hy vọng giúp bạn có thêm nhiều kiến thức cơ bản để tự xây dựng cho riêng mình một ứng dụng Android.

(Tác giả: Team Việt Dev)

2 Comments

  1. Trần Thành Trung 04/10/2018 Reply
    • admin 04/10/2018 Reply

Bình luận