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:
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 |
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ề.
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 }
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)
Dear các anh,
Em thử query thấy thông tin của giá tiền vào 10/04/2018. Làm sao để em lấy được thông tin của đúng ngày đúng giờ hả anh.
Chào bạn, không biết bạn gọi câu query như thế nào?