Hiểu nhanh và thực hành API đơn giản
Tài liệu tham khảo:
- https://techtalk.vn/tat-tan-tat-ve-api.html
- https://vi.wikipedia.org/wiki/Giao_di%E1%BB%87n_l%E1%BA%ADp_tr%C3%ACnh_%E1%BB%A9ng_d%E1%BB%A5ng
Ở ví dụ này mình sẽ làm bằng JSON cho đơn giản, vì kiểu JSON dễ sử dụng hơn XML rất nhiều.
Ví dụ: Trang OpenWeatherMap có hỗ trợ xuất API cho các nhà phát triển để lấy thông tin thời tiết.
Link API mẫu : http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1
JSON thời tiết của OpenWeatherMap |
Dùng http://jsoneditoronline.org/ để phân tích JSON
Kết quả jsoneditoronline |
Chúng ta có 1 đối tượng JSON. Trong đối tượng này gồm các đối tượng nhỏ là:
Dùng thư viện request để lấy dữ liệu từ trang OpenWeatherMap về. Nó là kiểu String. Kết quả trả về là biến body. (Chỉ cần biết biến body là biến String chứa dữ liệu dạng JSON)
Ta dùng hàm JSON.parse(dữ liệu muốn parse) và gán nó vào 1 biến (ví dụ là biến json).
Rồi từ biến json, ta có thể truy xuất vào bất kỳ thuộc tính vào bên trong đó.
json.coord.lat : lấy giá trị của lat trong coord thuộc đối tượng JSON
json.coord.long : hiểu tương tự
json.name : London
json.sys.sunrise : 1485762037
json.sys.sunset :1485794875
Với Javascript thì việc parse JSON là vô cùng dễ.
Còn với Android ?
Android hay Java nói chung. Ta dùng JSONObject.
Dùng JSONObject buộc ta phải try/catch khối Code lại để tránh bị force close ứng dụng.
- coord
- weather
- main
- wind
- clouds
- sys
Bên trong những đối tượng con này các có các thuộc tính nhỏ nữa. Trong Javascript thì đọc JSON rất dễ dàng. Ta dùng hàm JSON.parse để chuyển kiểu String thành JSON Object.
Trong Java thì ta dùng JSONObject để parse.
Các bạn nhìn thấy trong hình ở đối tượng coord có 2 thuộc tính là lat và long.
Giờ mình sẽ đọc 2 thuộc tính này bằng Javascript. Nhưng ví dụ là NodeJS vì câu lệnh NodeJS là Javascript.
Kết quả nhận được sau khi Get dữ liệu từ OpenWeatherMap và dùng JSON.parse |
Code |
Kết quả sau khi parse |
Ta dùng hàm JSON.parse(dữ liệu muốn parse) và gán nó vào 1 biến (ví dụ là biến json).
Rồi từ biến json, ta có thể truy xuất vào bất kỳ thuộc tính vào bên trong đó.
json.coord.lat : lấy giá trị của lat trong coord thuộc đối tượng JSON
json.coord.long : hiểu tương tự
json.name : London
json.sys.sunrise : 1485762037
json.sys.sunset :1485794875
Với Javascript thì việc parse JSON là vô cùng dễ.
Còn với Android ?
Android hay Java nói chung. Ta dùng JSONObject.
Code Java |
Kết quả |
Nhận xét
Đăng nhận xét