Bài giảng Xây dựng và triển khai Web Service cho ứng dụng di động - Bài 4: Tương tác giữa Web Service với ứng dụng trên thiết bị di động

1. Giới thiệu các dạng dữ liệu tương tác giữa Web

Service với ứng dụng trên TBDĐ

2. Tổng quan về JSON

3. Tạo JSON bằng .Net Web Service

4. Tương tác giữa Web Service với ứng dụng trên TBDĐ

 

pdf 36 trang yennguyen 7860
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Xây dựng và triển khai Web Service cho ứng dụng di động - Bài 4: Tương tác giữa Web Service với ứng dụng trên thiết bị di động", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Xây dựng và triển khai Web Service cho ứng dụng di động - Bài 4: Tương tác giữa Web Service với ứng dụng trên thiết bị di động

Bài giảng Xây dựng và triển khai Web Service cho ứng dụng di động - Bài 4: Tương tác giữa Web Service với ứng dụng trên thiết bị di động
Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh 
TRUNG TÂM TIN HỌC 
2015 
 Bài 4: Tương tác giữa Web Service 
với ứng dụng trên thiết bị di động 
Ngành Mạng & Thiết bị di động 
www.t3h.vn 
1. Giới thiệu các dạng dữ liệu tương tác giữa Web 
Service với ứng dụng trên TBDĐ 
2. Tổng quan về JSON 
3. Tạo JSON bằng .Net Web Service 
4. Tương tác giữa Web Service với ứng dụng trên TBDĐ 
Nội dung 
Xây dựng và triển khai Web Service cho ứng dụng di động 2 
1. Giới thiệu các dạng dữ liệu tương tác giữa 
Web Service với ứng dụng trên TBDĐ 
Xây dựng và triển khai Web Service cho ứng dụng di động 3 
XML - eXtensible Markup Language 
• Là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị. 
• Là một dạng chuẩn cho phép lưu các thông tin hướng cấu trúc, 
được tổ chức dưới dạng thẻ (tag) tương ứng. 
• Các thẻ (tag) của XML thường không được định nghĩa trước mà 
chúng được tạo ra theo quy ước của người, (hoặc Chương trình) 
tạo ra XML theo những quy ước của chính người tạo. 
• Giúp đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác 
nhau, đặc biệt là các hệ thống được kết nối với Internet. 
• Sử dụng các khai báo kiểu dữ liệu DTD (Document Type Definition) 
hay lược đồ Schema để mô tả dữ liệu. 
1. Giới thiệu các dạng dữ liệu tương tác giữa 
Web Service với ứng dụng trên TBDĐ 
Xây dựng và triển khai Web Service cho ứng dụng di động 4 
XML - eXtensible Markup Language 
Ví dụ: 
1. Giới thiệu các dạng dữ liệu tương tác giữa 
Web Service với ứng dụng trên TBDĐ 
Xây dựng và triển khai Web Service cho ứng dụng di động 5 
JSON - JavaScript Object Notation 
Định nghĩa dữ liệu theo ngôn ngữ JavaScript, tiêu chuẩn ECMA-
262 năm 1999. 
Là một định dạng văn bản đơn giản với các trường dữ liệu được 
lồng vào nhau. 
1. Giới thiệu các dạng dữ liệu tương tác giữa Web 
Service với ứng dụng trên TBDĐ 
2. Tổng quan về JSON 
• JSON là gì? 
• Tạo sao nên sử dụng JSON? 
• Cú pháp JSON 
• Cấu trúc xây dựng JSON 
• Các kiểu dữ liệu JSON 
3. Tạo JSON bằng .Net Web Service 
4. Tương tác giữa Web Service với ứng dụng trên TBDĐ 
Nội dung 
Xây dựng và triển khai Web Service cho ứng dụng di động 6 
2. 1 JSON là gì? 
Xây dựng và triển khai Web Service cho ứng dụng di động 7 
JSON - JavaScript Object Notation 
• Định nghĩa dữ liệu theo ngôn ngữ JavaScript, tiêu chuẩn 
ECMA-262 năm 1999. 
• Là một định dạng văn bản đơn giản với các trường dữ 
liệu được lồng vào nhau. 
• Dùng để trao đổi dữ liệu giữa các thành phần của một 
hệ thống tương thích với hầu hết các ngôn ngữ C, C++, 
C#, Java, JavaScript, Perl, Python... 
2. 2 Tại sao nên sử dụng JSON? 
Xây dựng và triển khai Web Service cho ứng dụng di động 8 
• Có thể đọc hiểu và dễ dàng tiếp cận (human-readability). 
• Dữ liệu truyền tải ngắn gọn so với những định dạng dữ liệu khác 
như: XML, HTML,  → Tiết kiệm dung lượng hơn XML, HTML,... 
• Dễ dàng chuyển đổi (parse) dữ liệu từ dạng chuỗi (nhận từ server) 
sang dữ liệu có thể sử dụng được (thành Object, Number, Array). 
• Dễ truy cập nội dung. 
• Với những ứng dụng AJAX lấy và xử lý dữ liệu từ 1 web service nào 
đó khác domain. Nếu nội dung trả về có dạng JSON thì javascript 
từ trang web của chúng ta có thể trực tiếp truy cập (dùng lệnh 
eval). 
• Có cách phân tích xử lý đơn giản, chỉ qua 1 bước (chuyển chuỗi 
nhận được từ máy chủ sang dữ liệu có thể sử dụng được) 
2. 3 Cú pháp JSON? 
Xây dựng và triển khai Web Service cho ứng dụng di động 9 
Cú pháp JSON là một tập hợp con của cú pháp đối tượng JavaScript: 
• Dữ liệu là các cặp tên/giá trị (name/values) 
• Dữ liệu được phân cách bằng dấu phẩy 
• Đối tượng nằm trong cặp ngoặc nhọn „{}‟ 
• Dấu ngoặc vuông giữ mảng „[]‟ 
Để kiểm tra cú pháp chuỗi JSON, chúng ta có thể truy cập vào trang 
 để kiểm tra. 
2. 3 Cú pháp JSON? 
Xây dựng và triển khai Web Service cho ứng dụng di động 10 
Cặp tên và giá trị (name & values) của JSON 
•Dữ liệu JSON được viết trong cặp Tên/Giá trị. 
•Một cặp Tên/Giá trị chứa tên 1 trường (trong dấu nháy đôi “”), 
theo sau là dấu phẩy, cuối cùng là giá trị. 
 Ví dụ: 
 "ten" : "An" 
2. 3 Cú pháp JSON? 
Xây dựng và triển khai Web Service cho ứng dụng di động 11 
Tập tin JSON (JSON Files) 
• Kiểu tập tin (file) của JSON là ".json" 
• Kiểu MIME của JSON là "application/json" 
2. 3 Cấu trúc xây dựng JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 12 
Được xây dựng trên 2 cấu trúc chính: 
• Tập hợp của các cặp tên và giá trị name-value 
 Các kiểu thể hiện: 
 1 đối tượng (object), sự ghi (record), cấu trúc (struct), từ điển 
(dictionary), bảng băm (hash table), danh sách khoá (keyed 
list), hay mảng liên hợp. 
• Tập hợp các giá trị đã được sắp xếp 
 Các kiểu thể hiện: 
 1 mảng, véc tơ, tập hợp hay là 1 dãy tuần tự (sequence). 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 13 
JSON có 5 kiểu dữ liệu chính: 
• Kiểu số (Number) 
• Kiểu chuỗi (String) 
• Kiểu mảng (Array) 
• Kiểu đối tượng (Object) 
• Giá trị (Value) 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 14 
Kiểu đối tượng (Object) 
• 1 đối tượng là 1 hổn độn của các cặp tên và giá trị. 
• 1 đối tượng bắt đầu bởi dấu ngoặc đơn trái { và kết thúc với 
dấu ngoặc đơn phải }. 
• Từng tên được theo sao bởi dấu 2 chấm (:) và các cặp 
tên/giá trị được tách ra bởi dấu phẩy (,). 
• 1 đối tượng có thể chứa nhiều cặp tên/giá trị (Name/Values) 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 15 
Kiểu đối tượng (Object) 
Ví dụ: 
{ “ten":“An" , “ho":“Nguyen" } 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 16 
Kiểu mảng (Array) 
• 1 mảng là 1 tập hợp các giá trị đã được sắp xếp. 
• 1 mảng bắt đầu bởi dấu mở ngoặc vuông [ và kết thúc với 
dấu ngoặc vuông phải ]. 
• Các giá trị được cách nhau bởi dấu phẩy (,). 
• 1 mảng có thể chứa nhiều đối tượng. 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 17 
Kiểu mảng (Array) 
• Ví dụ 
{ 
 "NhanVien": 
 [ 
 {"tenNV":"An" , "hoNV":"Nguyễn" }, 
 {"tenNV":"Bình" , "hoNV":"Trần" }, 
 {"tenNV":"Châu" , "hoNV":"Lê" } 
 ] 
} 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 18 
Kiểu giá trị (Value) 
•Giá trị JSON có thể là: 
 1 số (nguyên (integer) hay số thực (floating point)) 
 1 chuỗi (nằm trong dấu nháy đôi "") 
 1 số luận lý (true hoặc false) 
 1 mảng (nằm trong dấu ngoặc vuông []) 
 1 đối tượng (nằm trong dấu ngoặc nhọn {}) 
 Kiểu null 
•Những cấu trúc này có thể đã được lồng vào nhau. 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 19 
Kiểu giá trị (Value) 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 20 
Kiểu chuỗi (String) 
•1 chuỗi (string) là 1 tập hợp của các số hay mẫu tự Unicode, được 
bao bọc trong các dấu trích dẫn kép ("). 
•Dùng dấu chéo (/) để thoát khỏi 1 chuỗi. 
•1 ký tự đã được hiển thị như là 1 chuỗi ký tự đơn độc. 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 21 
Kiểu chuỗi (string) 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 22 
Kiểu số (Number) 
Giống với kiểu số trong C và Java, trừ định dạng bát phân và hex là 
không thể dùng. 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 23 
Ví dụ sử dụng các kiểu dữ liệu JSON 
{ 
SVNganhCNTT: 
 [ 
 {hoTen: “Nguyễn Văn An”, tuoi: 21, nam: true, queQuan: “Đồng Tháp”}, 
 {hoTen: “Trần Văn Bình”, tuoi: 22, nam: true,queQuan:“Hồ Chí Minh”}, 
 {hoTen: “Lê Thị Châu”, tuoi: 23, nam: false, queQuan: “Vĩnh Long” } 
 ], 
SVNganhCNSH: 
 [ 
 {hoten: “Trần Văn Bông”, tuoi: 24, nam: true, queQuan: “Long An”}, 
 {hoten: “Nguyễn Thị Hoa”, tuoi: 22, nam: false, queQuan: “Cần Thơ”}, 
 ] 
} 
2. 4 Các kiểu dữ liệu JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 24 
Phân tích ví dụ 
- Tuoi (tuổi) kiểu dữ liệu là Number 
- hoTen (họ tên) kiểu dữ liệu là String 
- nam (giới tính) kiểu dữ liệu là Boolean 
- SVNganhCNTT (sinh viên ngành CNTT), SVNganhCNSH (Sinh viên 
ngành CNSH) kiểu dữ liệu làArray 
- {hoTen: “Nguyễn Văn An”, tuoi: 21, nam: true, queQuan: “Đồng 
Tháp”} là một kiểu Object 
- hoTen : “Nguyễn Văn An” là một cặp giá trị của một Object, hoTen là 
tên thuộc tính, “Nguyễn Văn An” là giá trị của thuộc tính đó 
- SVNganhCNTT: [...] và SVNganhCNSH: [...] cũng được xem là những 
cặp giá trị 
1. Giới thiệu các dạng dữ liệu tương tác giữa Web 
Service với ứng dụng trên TBDĐ 
2. Tổng quan về JSON 
3. Chuyển đổi giữa kiểu dữ liệu JSON và đối tượng .NET 
(Serializing - Deserializing JSON) 
● Cấu hình Web API Service chỉ trả về JSON 
● Chuyển đổi từ đối tượng .NET sang chuỗi JSON ( Tạo chuỗi JSON) 
● Chuyển đổi từ chuỗi JSON sang đối tượng .NET 
4. Tương tác giữa Web Service với ứng dụng trên TBDĐ 
Nội dung 
Xây dựng và triển khai Web Service cho ứng dụng di động 25 
3. 1 Cấu hình Web API Service chỉ trả về JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 26 
Mở file WebApiConfig.cs trong thư mục App_Start → thêm dòng 
sau vào trong phương thức Register: 
config.Formatters.Remove(config.Formatters.XmlFormatter); 
Để cấu trúc thuộc tính của đối tượng JSON trả về đúng quy cách 
CamelCase thì ta thêm config sau vào Register: 
var json = config.Formatters.JsonFormatter; 
json.SerializerSettings.PreserveReferencesHandling = 
 Newtonsoft.Json.PreserveReferencesHandling.Objects; 
json.SerializerSettings.ContractResolver = new 
 CamelCasePropertyNamesContractResolver(); 
3. Chuyển đổi giữa kiểu dữ liệu JSON và đối tượng 
.NET (Serializing - Deserializing JSON) 
Xây dựng và triển khai Web Service cho ứng dụng di động 27 
Để chuyển đổi (convert) một chuỗi (string) định dạng JSON sang 
đối tượng (object) của .Net và ngược lại, ta sử dụng lớp 
JavaScriptSerializer trong thư viện System.Web.Extensions. 
3. 2 Chuyển đổi từ đối tượng .NET sang chuỗi JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 28 
Sử dụng phương thức Serializer thuộc lớp JavaScriptSerializer. 
Khai báo sử dụng: 
using System.Web.Script.Serialization; 
Ví dụ 1: 
Lớp HocVien đã được định nghĩa với các thuộc tính: maHV, tenHV và các 
thuộc tính get, set cho từng thuộc tính, phương thức khởi tạo với 2 tham 
số maHV và tenHV. Những lệnh sau dùng để chuyển đổi đối tượng 
HocVien sang chuỗi JSON: 
HocVien = new HocVien("SV001", "Nguyễn Văn A"); 
string chuoiJSON= serializer.Serialize(s); 
Response.Write("Object: " + chuoiJSON); 
Kết quả: 
Object: {“maHV”:SV001, “tenHV”: “Nguyễn Văn A”} 
3. 2 Chuyển đổi từ đối tượng .NET sang chuỗi JSON 
Xây dựng và triển khai Web Service cho ứng dụng di động 29 
Ví dụ 2: 
HocSinh hs1= new HocSinh(); 
hs1 = getHocSinhByID(123); 
JavaScriptSerializer jss = new JavaScriptSerializer(); 
string chuoiJSON = jss.Serialize(hs1); 
Console.WriteLine(chuoiJSON); 
Kết quả: 
{ 
 “tenHV": “Trần Văn B", 
 “maHV": "123456", 
 “ngaySinh": "01/01/1991", 
 “diaChi":{"sonha":"123","quan":“10"}, 
 "diemThi":[{"mon":“toan","diem":"10"}, 
 {"mon":"ly","diem":"9"}, 
 {"mon":"hoa","diem":"8"}] 
} 
3. 3 Chuyển đổi từ chuỗi JSON sang đối tượng .NET 
Xây dựng và triển khai Web Service cho ứng dụng di động 30 
 Sử dụng phương thức Deserializer thuộc lớp JavaScriptSerializer. 
Ví dụ 1: 
Với chuỗi JSON sau: 
{“maHV”:100, “tenHV”: “Nguyễn Văn A”} 
Lệnh dùng để chuyển đổi chuỗi JSON trên thành đối tượng 
HocVien: 
HocVien hv1 = serializer.Deserialize(str); 
Response.Write("tenHV: " + hv1.HocVien); 
Xây dựng và triển khai Web Service cho ứng dụng di động 31 
Ví dụ 2: 
Với chuỗi JSON sau 
{ 
 “tenHS": “Trần Văn B", 
 "maHS": "123456", 
 "ngaySinh": "01/01/1991" 
} 
Cách 1: Chuyển qua một đối tượng cụ thể 
Định nghĩa 1 lớp đối tượng tương ứng 
public class HocSinh 
{ 
 public string tenHS{ get; set; } 
 public string maHS{ get; set; } 
 public string ngaySinh{ get; set; } 
} 
3. 3 Chuyển đổi từ chuỗi JSON sang đối tượng .NET 
Xây dựng và triển khai Web Service cho ứng dụng di động 32 
Cách 1: Chuyển qua một đối tượng cụ thể 
Định nghĩa 1 lớp đối tượng tương ứng: 
public class sinhvien 
{ 
 public string tenHS{ get; set; } 
 public string maHS{ get; set; } 
 public string ngaySinh{ get; set; } 
} 
Chuyển đổi JSON qua đối tượng: 
JavaScriptSerializer jss = new JavaScriptSerializer(); 
sinhvien hs = jss.Deserialize(JsonText); 
3. 3 Chuyển đổi từ chuỗi JSON sang đối tượng .NET 
Xây dựng và triển khai Web Service cho ứng dụng di động 33 
Cách 2: Chuyển qua dạng dữ liệu động (dynamic) 
JavaScriptSerializer jss = new JavaScriptSerializer(); 
var obj = jss.Deserialize(JsonText); 
Console.WriteLine(obj[“tenHS"]); 
3. 3 Chuyển đổi từ chuỗi JSON sang đối tượng .NET 
1. Giới thiệu các dạng dữ liệu tương tác giữa Web 
Service với ứng dụng trên TBDĐ 
2. Tổng quan về JSON 
3. Tạo JSON bằng .Net Web Service 
4. Tương tác giữa Web Service với ứng dụng trên TBDĐ 
Nội dung 
Xây dựng và triển khai Web Service cho ứng dụng di động 34 
4. Tương tác giữa Web Service với ứng dụng 
trên TBDĐ 
Xây dựng và triển khai Web Service cho ứng dụng di động 35 
• Lấy dữ liệu dạng JSON từ .Net Web Service 
• Truyền dữ liệu dạng JSON từ ứng dụng di động lên .Net Web 
Service 
• Mã hóa khi truyền biến JSON lên .Net Web Service 
Xây dựng và triển khai Web Service cho ứng dụng di động 36 

File đính kèm:

  • pdfbai_giang_xay_dung_va_trien_khai_web_service_cho_ung_dung_di.pdf